Java 程序输出:String 比较与对象引用
Java 程序输出:String 比较与对象引用
这段代码存在编译错误,因为缺少了大括号。
修正后的代码:
public class Test extends Thread {
public static void main(String[] args) {
String a = 'Haiyong';
String b = new String(a);
int value = 0;
value = (a==b)? 1:2;
if(value == 1) {
System.out.println('Haiyong');
} else if(value == 2) {
System.out.println('Blog');
} else {
System.out.println('HY');
}
}
}
程序输出: 'Blog'
解释:
- 代码中使用
a==b比较两个 String 对象,但实际上比较的是它们的引用,而不是它们的值。 - 虽然
a和b都是 'Haiyong',但b是通过new String(a)创建的新对象,因此a和b的引用不同。 - 由于
a==b的结果为false,value被赋值为 2。 - 程序执行
else if分支,输出 'Blog'。
总结: 在 Java 中,使用 == 比较 String 对象时,实际比较的是对象的引用,而不是值。要比较 String 对象的值,可以使用 equals() 方法。
原文地址: https://www.cveoy.top/t/topic/mXjs 著作权归作者所有。请勿转载和采集!