# Хитрая задачка на Java: не то, чем кажется
Внимательно изучите следующий код:
Вопрос:
Что напечатает эта программа? Обоснуйте каждый вывод, опираясь на спецификацию Java и особенности работы с пулом строк, кэшированием обёрток и автоупаковкой.
Внимательно изучите следующий код:
public class WhatTheJava {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
String s4 = new String("hello").intern();
System.out.println(s1 == s2); // (1)
System.out.println(s1 == s3); // (2)
System.out.println(s1 == s4); // (3)
System.out.println(s3 == s4); // (4)
Integer i1 = 1000;
Integer i2 = 1000;
Integer i3 = 100;
Integer i4 = 100;
System.out.println(i1 == i2); // (5)
System.out.println(i3 == i4); // (6)
Boolean b1 = true;
Boolean b2 = true;
Boolean b3 = Boolean.valueOf("true");
Boolean b4 = new Boolean(true);
System.out.println(b1 == b2); // (7)
System.out.println(b1 == b3); // (8)
System.out.println(b1 == b4); // (9)
}
}
Вопрос:
Что напечатает эта программа? Обоснуйте каждый вывод, опираясь на спецификацию Java и особенности работы с пулом строк, кэшированием обёрток и автоупаковкой.
❤3