// Работа с большими объектами
byte[] b = new byte[65536];
b[0] = 1;
System.out.println(b[0]);
// и с маленькими
String s = "123";
System.out.println(s.hashCode());
// и с финализируемыми объектами
Object f = new Object() {
@Override
protected void finalize() {
System.out.println("I'm finalized!");
}
};
// Строго говоря, объекты b и s так же являются финализируемыми,
// так как наследуют метод finalize() от своего предка.
// Так что f можно было даже не писать.
System.gc();
System.gc();
System.gc();
System.gc();
// В этом месте объекты b, s и f пережили 4 цикла сборки.
// Наверное... ¯\_(ツ)_/¯
//
// Более точно можно сказать, запустив программу с
// аргументом -verbose:gc или с помощью утилиты visualvm