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'

解释:

  1. 代码中使用 a==b 比较两个 String 对象,但实际上比较的是它们的引用,而不是它们的值。
  2. 虽然 ab 都是 'Haiyong',但 b 是通过 new String(a) 创建的新对象,因此 ab 的引用不同。
  3. 由于 a==b 的结果为 falsevalue 被赋值为 2。
  4. 程序执行 else if 分支,输出 'Blog'。

总结: 在 Java 中,使用 == 比较 String 对象时,实际比较的是对象的引用,而不是值。要比较 String 对象的值,可以使用 equals() 方法。

Java 程序输出:String 比较与对象引用

原文地址: https://www.cveoy.top/t/topic/mXjs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录