字符串常量池

堆中有一个常量池(StringTable),是一个哈希表,用来提高存储效率,存储双引号引起来的字符串(存储字符串的常量值,双引号引起来的是字符串常量)。存储字符串常量的时候,会检查当前常量池是否存在将要存储的常量。
1.看常量池是否存在当前字符串
2.没有则存进去
3.有则获取这个字符串在常量池当中的地址
在这里插入图片描述
输出结果是True。
先把"hello"这个String类型的对象存到StringTable里,再把这个对象给到s1。
字符串常量池_第1张图片

在这里插入图片描述
输出结果是false。
字符串常量池_第2张图片
同理以下输出结果也为false。
在这里插入图片描述

一、intern方法

字符串常量池_第3张图片
输出结果是false。
字符串常量池_第4张图片
字符串常量池_第5张图片
输出结果是true。
字符串常量池_第6张图片

你可能感兴趣的:(java,开发语言,学习)