String str = new String("abc") 创建了几个对象?

版权声明:转载原创内容请注明出处 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" 。

猜你喜欢

转载自blog.csdn.net/a4827909/article/details/88551989
今日推荐