版权声明:转载原创内容请注明出处 https://blog.csdn.net/a4827909/article/details/88551989
1、以下代码创建了几个对象
String str = new String("abc");
创建了两个对象。
第一个对象是:"abc",存在于字符串池中;第二个对象:new String(),存在于堆(heap)中(堆专门用于存储对象)。
2、以下代码创建了几个对象
String str = "abc";
创建了一个对象,这个对象是:"abc",存在于字符串池中。
3、以下代码创建了几个对象
String str1 = "abc";
String str2 = "abc";
创建了一个对象。
执行 str1 时,在字符串池中创建了对象 "abc";执行 str2 时,先到字符串池中查找是否有 "abc",如果有,则将其地址返回给 str2 ,str2 引用了对象 "abc",并没有创建新的对象。
4、以下代码创建了几个对象
String str = "ab" + "c";
创建了三个对象。
这三个对象都在字符串池中,三个对象分别是:"ab" , "c" , "abc" 。