深入理解jvm虚拟机-java内存区域与内存溢出异常
Jvm内存区域划分
新建对象流程
Java程序是如何运行起来的
对象的内存布局
jdk6与jdk7的不同
1 | class Test { |
1 | intern() 去查看当前字符串常量池里面是否有这个字符串的变量引用,如果有直接返回 |
在以上代码中,如果在jdk6的情况下,会得到两个false,在jdk6中intern()方法会把首次遇到的字符串实例复制到永久代的字符串常量池中,返回的是常量池中的引用,但是StringBuilder是在堆里面,在jdk7中,会返回一个true和false,因为在jdk7中字符串常量池已经移动到了堆里面,StringBuilder返回的和常量池中的引用是同一个,第二个是true是因为java这个字符串在sun.misc.Version已经被加载到了jvm中。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 tyrantlucifer!
评论