黑马jvm总结(七)
作者:小教学发布时间:2023-09-19分类:程序开发学习浏览:93
导读:(1)字符串表_编译器优化“a”+“b”对应#4:是去常量池中找ab的这个符号Astore5:是把这个存入编号为5的局部变量“ab”对应的指令#4,跟“a”+“b”对应#4下面弄...
(1)字符串表_编译器优化
“a”+“b”对应#4:是去常量池中找ab的这个符号
Astore 5:是把这个存入编号为5的局部变量
“ab”对应的指令#4,跟“a”+“b”对应#4下面弄是一样的
在执行s3=“ab”这行个代码时,去常量池中找ab这个对象,发现串池中没有ab这个对象,创建放入串池,执行到s5=“a”+“b”这行代码时、去常量池中找ab这个对象,串池中有了ab这个对象.不会再创建新的对象了,他们的值是相等的
所以STORE到-3的变量和STORE到5的变量都是串池中的ab字符串对象
(2)字符串表_字符串延迟加载
通过Idea的Memory查看运行时字符串对象的个数,
跳转下一步:
他说:
在往下走是上面创建的对象串池中有了不会再创建新的对象啦
(3)StringTable_Intern_1.8
新建字符串(“a”)+新建字符串(“b”)底层调用是字符串构建通过新字符串(“ab”)是存放到堆中的
可以通过实习生把堆中的对象放到串池中并返回,《ab》就不会新建对象了,会返回True
最后串池中已有这个ab,“ab”就不会新建对象了,会返回True
如果先有《ab》,下面创建的对象S,调用实习生方法是,因为串池中已经有了所以不会把队中的对象再放入串池,而是返回串池中的对象,所以S不等于x。
(4)StringTable_Intern_1.6
在jdk1.6.
1.6.的时候把S这个对象拷贝一份放入串池
《ab》发现串池中已经有了不会重新创建对象,相等于的是串池中的对象,所以x不等于这个对象S
他说:
- 程序开发学习排行
- 最近发表
-
- Wii官方美版游戏Redump全集!游戏下载索引
- 视觉链接预览最好的WordPress常用插件下载博客插件模块
- 预约日历最好的wordpress常用插件下载博客插件模块
- 测验制作人最好的WordPress常用插件下载博客插件模块
- PubNews Plus|WordPress主题博客主题下载
- 护肤品|wordpress主题博客主题下载
- 肯塔·西拉|wordpress主题博客主题下载
- 酷时间轴(水平和垂直时间轴)最好的wordpress常用插件下载博客插件模块
- 作者头像列表/阻止最好的wordPress常用插件下载博客插件模块
- Elementor Pro Forms最好的WordPress常用插件下载博客插件模块的自动完成字段