Может я упустил где то в лекции и есть какое то внутреннее приведение типов при сравнении примитива и классом-оберткой? Интересует конкретно сравнение через двойной знак равно(==). Изначально ведь, мы берем ссылку на объект класса-обертки и значение примитива, они не могут быть равны.
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); - <strong>false</strong>
        System.out.println(third == second); - <strong>true</strong>
        System.out.println(third == first); - <strong>true</strong>
    }
}