最近在网上看到一些Android的面试题,关于String和Integer常量池的,就总结了一下,暂时先记录下来,以后说不定能用到 在上面我们看到Integer在-128~127之间是使用常量池的,如果不在这个区间就不会使用,其实是重新new了一个Integer,我们看一下源码 我们看到如果i >= ...
分类:
编程语言 时间:
2018-04-23 21:41:07
阅读次数:
195
引言 本文将介绍常量池 与 装箱拆箱机制,之所以将两者合在一起介绍,是因为网上不少文章在谈到常量池时,将包装类的缓存机制,java常量池,不加区别地混在一起讨论,更有甚者完全将这两者视为一个整体,给初学者带来不少困扰,我就是过来的。同时,也因为包装类的缓存 与 字符串常量池的 ...
分类:
编程语言 时间:
2018-02-28 17:32:10
阅读次数:
241
理论 jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令。 本地方法栈是jvm调用操作系统方法所使用的栈。 虚拟机栈是jvm执行java代码所使用的栈。 方法区存放了一些常量、静态变量、类信息等,可以理解成class文件在内存中的存放位置。 虚拟机堆是jvm执行java代码所 ...
分类:
编程语言 时间:
2017-12-21 23:07:31
阅读次数:
197
一.相关概念 什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。 Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受 ...
分类:
编程语言 时间:
2017-11-07 19:37:12
阅读次数:
211
java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3) java虚拟机学习-JVM内存管理:深入垃圾收集器与内存分配策略( ...
分类:
编程语言 时间:
2017-11-07 19:32:30
阅读次数:
231
参考资料:http://www.cnblogs.com/holos/p/6603379.html 注意: 1.首先,我们平时在讨论字符串新建问题时所说的常量池其实指的是全局字符串常量池。并不是运行时常量池,更加不是class编译时常量池。 例如:当我们通过new新建一个字符串时 String s1 ...
分类:
编程语言 时间:
2017-09-01 16:34:41
阅读次数:
193
在class文件中,“常量池”是最复杂也最值得关注的内容。 Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值还,还包含一些以文本形式出现的符号引用,比如: 类和接口的全限定名; 字段的名称 ...
分类:
编程语言 时间:
2017-08-24 12:27:48
阅读次数:
180
转:http://www.cnblogs.com/dreamroute/p/5946272.html java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下。 理论 小菜先拙劣的表达一下jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线, ...
分类:
编程语言 时间:
2017-07-24 23:41:22
阅读次数:
217
转自:http://www.cnblogs.com/iyangyuan/p/4631696.html jvm虚拟内存分布图: 程序计数器:JVM执行程序的流水线。 本地方法栈:JVM调用操作系统方法所使用的栈。 虚拟机栈:JVM执行Java代码所使用的栈。 方法区:存放一些常量、静态变量、类信息等; ...
分类:
编程语言 时间:
2017-06-18 19:25:27
阅读次数:
286
要了解Java的中常量池,首先要知道jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。 本地方法栈是jvm调用操作系统方法所使用的栈。 虚拟机栈是jvm执行java代码所使用的栈。 方法区存放了一些常量、静态变量、类信息等,可以理解成class文件在内 ...
分类:
编程语言 时间:
2017-04-23 13:16:45
阅读次数:
246