public class test04 {
public static void main(String[] args){
String str1=new String("world");
String str2=new String(str1);
if(str1==str2)
{
System.out.println("相等");
}
else
System.out.println("不相等");
}
}
为什么显示不相等啊
不是很名明白,我是新手,请详细说说
追答我这个说得是很详细了啊
你好!
这里的(str1==str2)属于比较两个对象,但是他们都是分别new出来的,所以这两个对象当让不相等了。
如果是下面的情况会等到相等的结果:
String str2 = str1;
或者if的条件变成 if(str1.equals(str2))
为什么这样相等,而那个却不相等
追答这么说吧:
String str1="world"; 是你创建了一个str1,并直接给它赋值,让str1等于world;
String str2=str1;是直接把str1的值赋给str2。
但是String str1=new String("world");
String str2=new String(str1);这里new表示又创建了一个str1,并不是直接赋值,就是说你代码里面第一个str1和str1已经不是同一个东西,虽然名字一样