2020-12-24
作者:互联网
**
写出 String s = “hello”; 和 String s2 = new String(“world”);创建字符 串的区别。
**
1. String s = “hello”;
这种获取字符串的方式,只会在串池查看是否存在hello对象,存
在则直接使用,如果不存在,则在串池种创建一个hello字符串对
象,串池中的字符串对象可以供其他其他字符串共享。
2. String s2 = new String(“world”);
这种获取字符串方式首先在堆空间中产生一个String类型的对
象,然后查看在串池中是否存在该字符串,存在-不会在串池创建对
象,但是如果不存在,则依然会在串池中产生一个字符串对象 (这
种方式:最多产生两个对象,一个串池中,一个在堆空间中),最终
将堆空间中字符串对象的地址存储在引用中。
扩充:String s2 = new String(“world”); 默认指向堆空
间中的字符串,如果使用 s2.intern(); 方法,指向串池中的字
符串对象。
标签:24,12,String,s2,串池,new,字符串,2020,hello 来源: https://blog.csdn.net/qq_44866828/article/details/111644417