大家好,今天我们继续学习String常量池,昨天我们已经做了一个介绍,相信大家✓String常量池有了一定了解,那么就来看看它的应用。
字符串常量地(String Table).
字常量她在IVM中是StringTable类,实际是一个固定大小的 HashTable(一种高效用来进行查找的数据结构),不同JDK版本下字符串常量池的位置以及默认大小是不同的:
2.9.3再谈string对象创建
由于不同JDK版本对字符串常量池的处理方式不同,此处在Java8 Hotspot上分析
1、直接按使用字符串常量进行赋值.
说明:
1.在字节码文件加载时,"hello"和"hahaha"常量库已经创建好了,并保存在字符串常量池中。
2.当使用String s1="hello";创建对象时,先在字符串常量池中找,找到了,将该字符引用斌值给引用.
示意图:
注:有可能他们在哈希表里面存储的是同一个下标,那么这个下标底下本质来说是一个列表,它会存储这个列表的第一个值,这个值相等时,有可能是列表中的一个对象。
好了,今天分享就到这里,谢谢大家!!!