下面这句代码输出结果为什么是这样import java.util.Arrays; public class Prac { private String name = "abc"; public static void main(String[] args) { Prac test = new Prac(); Prac testB = test; String result = test.equals(testB) + ","; result += test.name.equals(testB.name) + ","; result += test.name == testB.name; System.out.println(result); } }
时间: 2023-06-02 14:04:12 浏览: 97
java代码-import java.util.Scanner;
这段代码输出的结果为:true,false,true。
首先,test.equals(testB)比较的是对象的引用,所以返回结果为true;
其次,test.name.equals(testB.name)比较的是两个字符串对象的值是否相等,所以返回结果为false;
最后,test.name == testB.name比较的是两个字符串对象的引用是否相等,由于字符串"abc"是常量池中的,所以返回结果为true。
阅读全文