При таком коде будет 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);
Означает ли это, что метод создает новый объект для своей работы?