Integer num1 = Integer.parseInt("123");
Integer num2 = 123;
System.out.println(num1 == num2);
Integer num3 = Integer.parseInt("456");
Integer num4 = 456;
System.out.println(num3 == num4);
因为是Integer不是int,所以比较的是引用不是值,Java会缓存-128~127的值,所以在这个范围内是true,超过这个范围是false
应该用int而不是Integer
为什么会出现这种情况
因为双等号是比较的值,而Integer是引用类型,应该用equals方法来判断