运行时常量池是方法区的一部分
class文件中除了有类版本,字段,方法,接口之外,还有一项信息是常量池(运行时常量池)
用于存放编译期生成的各种字面量跟符号引用,这部分将在类加载后进入方法区的运行常量池中存放
执行得到结果是 turn
按理说string指向是他在内存中的地址,但是两个对象存在不同地址应该输出false,可是却是输出了true
其实上边两个案例是存在运行常量池中 (stringtable 数据类型是 HashSet)
set是不能重复的无序的,只能存入一个abc的
所以s1 s2两个相等
s3 是new 的 是在堆内存的创建的,位置跟s1s2不同 所以false
s1 称为字节码常量
s3.intern 会将s3搬到运行时常量池