为什么第一个条件是false,第二个条件是true?我确信他们都是真的。
System.out.println(Integer.toString(3) == "3");
System.out.println(Integer.parseInt("3") == 3);
Run Code Online (Sandbox Code Playgroud)
Integer.parseInt将 String 转换为原始 int 并且原始类型可以与==. 然而,Integer.toString产生一个String对象并且==对于对象检查它们是否是完全相同的引用;使用String#equals来比较字符串的值。
System.out.println(Integer.toString(3).equals("3"));
System.out.println(Integer.parseInt("3") == 3);
Run Code Online (Sandbox Code Playgroud)
上面的代码输出:
true
true
Run Code Online (Sandbox Code Playgroud)