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

2024-12-05 00:24:41
推荐回答(2个)
回答1:

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


大概是这种关系:

即a b指向不同的对象

回答2:

所以说比较两个String的时候不应该用==, 第二种情况你用a.equals(b)就是true了

在java里物体的名字相当于一个标签。当你做第一种的时候,"abc"这个物体被创造了出来,并打上了一个a的标签,然后同一个物体又被打上了b这个标签,但本质上a和b是同一个物体,所以a==b ->true.

第二种的时候,b是一个新的物体,存储的位置和a不一样,所以a==b是false