Java 中String a="abc"和String a = new string("abc")

2024年12月05日 00:03
有2个网友回答
网友(1):

前面那个是定义了一个string类对象a
并赋值为abc。此时的a是一个实例化对象
后面的b
是定义了一个string字符串变量
,赋值abc
。顺便说一句
后面一句少了一个i
也可以这么理解:
string
b=
"abc";
先在内存中找是不是有"abc"
这个对象,
如果有,就让b指向那个"abc".如果内存里没有"abc",就创建一个新的对象保存"abc".
string
a=new
string
("abc")
就是不管内存里是不是已经有"abc"这个对象,
都新建一个对象保存"abc"

网友(2):

new String("abc")这种是new了一个Object,abc是被储存在其内部的值,“=”把指针赋给a,b,但是a,b指向的是不同的对象,所以返回值是false
大概是这种关系:
即a
b指向不同的对象