关于String是否相同判断的问题
下面这段代码运行结果有点疑问,问什么判断2是false呢?str4和str3不是引用的同一对象吗?
public class test {
public static void main(String[] args) {
//引用判断1
String str1=new String("hello");
String str2=new String("hello");
System.out.println(str1==str2?true:false);
//引用判断2
String str3=new String("str");
String str4=str3;
str4="str";
System.out.println("str3="+str3+",str4="+str4);
System.out.println(str3==str4?true:false);
}
}
运行结果
false
str3=str,str4=str
false
正在回答
str4并未指向str3,在String str4=str3中,str3并不作为指针地址,而是字符串"str",所以str4是一个新指针指向字符串"str"。
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧