Ну серьёзно, не понимаю в чем дело. В отладчике проверяю всё по 50000. Направьте на путь истинный!
package com.javarush.task.task06.task0603;
/*
По 50 000 объектов Cat и Dog
*/
import java.util.*;
public class Solution {
public static void main(String[] args)throws Throwable {
//Отдельно создаём кошечек для валидации(Не помогает)
Cat[] cat = new Cat[50000];
for(int i = 0; i < 50000; i++) {
cat[i] = new Cat();}
// Создаём ArrayList кошечек
List<Cat> catList = new ArrayList<Cat>();
Cat kotik = new Cat();
for (int i = 0; i < 50000; i++) {
catList.add(new Cat());
catList.set(i,kotik);
}
//Уничтажаем всех кошечек ;(
cat = null;
for(int i =0; i<catList.size();i++){
catList.get(i).finalize();
}
//Отдельно создаём собачек для валидации(Не помогает)
Dog[] dog = new Dog[50000];
for(int i = 0; i < 50000; i++) {
dog[i] = new Dog();}
//и тд.
List<Dog> dogList = new ArrayList<Dog>();
Dog sobachka = new Dog();
for (int i = 0; i < 50000; i++) {
dogList.add(new Dog());
dogList.set(i,sobachka);
}
dog = null;
for(int i =0; i<dogList.size();i++){
dogList.get(i).finalize();
}
}
}
class Cat {
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println("Cat was destroyed");
}
}
class Dog {
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println("Dog was destroyed");
}
}