При таком коде будет 2 раза вызван метод print(int), потому что не сработает приведение типов - a = (Integer) a;
int a = 20;
print(a);
a = (Integer) a;
print(a);
Тк переменна а инициализирована примитивным интом. Чтобы приведение типов сработало нужно создавать новый объект, например
int a = 20;
        print(a);
        a = (Integer) a;
        Integer b = (Integer) a;
        print(b);
В примере выше сработают оба метода. Но если прописать сразу в методе, приведение сработает - print((Integer) a); Означает ли это, что метод создает новый объект для своей работы?