С следующим:распределения памяти/ссылка сравнение для целых чисел и Целых
String a = new String("test");
String b = "test";
System.out.println(a == b); //false
Мы получаем ложные, так как String a
является объектом, поэтому a
указует на другое место в памяти, чем строковый литерал, b
. Я хотел посмотреть, как это работает для int
и Integer
:
Integer x = new Integer(5);
int y =5;
System.out.println(x == y); //true
я хоть что x.equals(y)
было бы верно, но x == y
было бы ложным, как в случае с Strings
. Я понимаю, что мы сравниваем ints
с ==
, но я решил, что сравнение int
с Integer
будет отличаться. Почему это не так?
Я предполагаю, что в этом случае использование ==
не будет работать для сравнения ссылок, так как мы это сделаем (не уверен, что это практично, но я хотел бы знать)?