Не совсем понимаю как может так быть // for (int i=0; i<50000; i++){ Cat cat = new Cat(); Dog dog = new Dog(); } Веть создается 50000 одинаковых переменных (cat) класа Cat. Я понял эту задачу, как с каждой итерацией цикла должны создаваться новые объекты ссылки на которые хранятся в переменных cat0, cat1 ..... cat49999