Integer a = 1000; Integer b = 1000; System.out.println(a == b);
In Java, Integer objects between -128 and 127 are cached. For 1000, new Integer objects are created, so a and b refer to different objects. Using == compares references, so it returns false.
Integer x = 5; int y = 10; System.out.println(x + y);
The Integer x is unboxed to int 5, then added to int y (10), resulting in 15.
Integer a = null; int b = a; System.out.println(b);
Unboxing null Integer to int causes NullPointerException because Java tries to get the int value from a null reference.
Autoboxing creates wrapper objects which can increase memory usage and cause more frequent garbage collection, leading to performance overhead.
Integer i1 = 127; Integer i2 = 127; Integer i3 = 128; Integer i4 = 128; System.out.println(i1 == i2); System.out.println(i3 == i4);
Integer values between -128 and 127 are cached, so i1 and i2 point to the same object, making == true. For 128, new objects are created, so i3 and i4 are different, making == false.
