public class Solution {
static Integer first = 1000;
static Integer second = 1000;
static int third = 1000;
public static void main(String[] args) {
System.out.println(first == second);
System.out.println(third == second); почему true?
System.out.println(third == first); почему true?
}
}
YPon
22 уровень
Примитивы и обвертки
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Max Zap
14 октября 2021, 09:13
Потому, что когда обёртку сравниваешь с примитивом, обёртка приводится к примитиву. Если сравнить Integer == int, то это как int==int. А Integer==Integer будет false, но только если значение меньше -128 и больше 127.
+2
YPon
14 октября 2021, 09:38
Спасибо.
0
YPon
14 октября 2021, 09:40
но только если значение меньше -128 и больше 127, что происходит при < -128 и > 127?
0
Max Zap
14 октября 2021, 09:59
Значение кэшируется если они попадают в выше обозначенный диапазон. Т.е. если Integer1=100 и Integer2=100, тогда Integer1 == Integer2 будет true.
+1
Max Zap
14 октября 2021, 10:28
Видео
+1