String什么情况下用不到常量池?
作者:互联网
三种情况
1.String str = “小鹿”;
2.String str = new String(“小鹿”);
3.public class demo {
private String text;
}
1.在编译的时候,在常量池中创建"小鹿"
运行时,返回常量池中的内容
2.在编译的时候,在常量池中创建"小鹿"
在调用new的时候,在堆中创建String对象,引用常量池中的内容
3.在运行时,创建的String会在堆中,不会在常量池中
但是,动态创建的字符串对象,调用intern方法,在JDK1.6版本中会去常量池中创建运行时常量以及返回字符串引用,在JDK1.7版本之后,会将堆中的字符串常量的引用放入到常量池中,当其它堆中的字符串对象通过intern方法获取字符串对象引用时,则会去常量池中判断是否有相同值的字符串的引用,此时有,则返回该常量池中字符串引用,跟之前的字符串指向同一地址的字符串对象。
标签:String,下用,池中,小鹿,引用,字符串,常量 来源: https://blog.csdn.net/lbh199466/article/details/116703655