非常无聊的笔试题:
public class Test {
public static void main(String[] args) {
String s1 = "a" +"b" + "c";
String s2 = "abc";
String s3 = new String("abc");
System.out.println(s2 == s3);
System.out.println(s2 == s1);
System.out.println(s1.equals(s3));
System.out.println(s2.equals(s3));
Integer a = 100;
Integer b = 100;
Integer c = 100;
System.out.println(a == b);
System.out.println(a.equals(b));
}
}
最终运行结果:
PS C:\Users\szy> & ‘C:\Program Files\Java\jdk-18.0.2\bin\java.exe’ ‘-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:52582’ ‘-XX:+ShowCodeDetailsInExceptionMessages’ ‘-cp’ ‘C:\Users\szy\AppData\Local\Temp\vscodesws_c8069\jdt_ws\jdt.ls-java-project\bin’ ‘Test’
false
true
true
true
true
true`
解析:
== 比较的是内存地址
equal比较的是内容