请教大牛前来解答,万分感谢

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方法来判断