目录:
(1)StringTable(串池)
(2)StringTable字符变量拼接
(3)StringTable的编译器优化
(4)字符串延迟加载
(1)StringTable
学习运行时常量池中重要组成部分
编译后,反编译:
把a对象存入局部变量
串池:会把字符串对象在串池中查找是否有这个对象,没有把它放进去
(2)StringTable字符变量拼接
反编译:
s3是在串池当中的,s4是new出来的字符串,是存在堆当中 的,所以不是一个对象
(3)StringTable的编译器优化
他去常量池找#4的ab符号,这时ab在串池中已经有了,他不会创建新的,它会用已有的ab对象,所以s3和s5变量都是存在串池的ab对象。
(4)字符串延迟加载
它先从1-0的数字加入串池中,执行一行代码,把没有的数字放入串池,后面在加入,不会再创建新的字串对象了