public class YoungGenExample {
public static void main(String[] args) {
// Объекты создаются в Eden
byte[] data1 = new byte[1024 * 100]; // 100 KB
byte[] data2 = new byte[1024 * 200]; // 200 KB
// После нескольких циклов сборки мусора
// выжившие объекты перемещаются в Survivor
for (int i = 0; i < 1000; i++) {
byte[] temp = new byte[1024 * 50];
// временные объекты быстро удаляются из Eden
}
// Объекты, пережившие несколько сборок,
// перемещаются в Old Generation
byte[] longLived = new byte[1024 * 1024 * 10]; // 10 MB
keepReference(longLived);
}
static void keepReference(byte[] data) {
// объект остаётся достижимым
}
}
public class YoungGenExample {
public static void main(String[] args) {
// Объекты создаются в Eden
byte[] data1 = new byte[1024 * 100]; // 100 KB
byte[] data2 = new byte[1024 * 200]; // 200 KB
// После нескольких циклов сборки мусора
// выжившие объекты перемещаются в Survivor
for (int i = 0; i < 1000; i++) {
byte[] temp = new byte[1024 * 50];
// временные объекты быстро удаляются из Eden
}
// Объекты, пережившие несколько сборок,
// перемещаются в Old Generation
byte[] longLived = new byte[1024 * 1024 * 10]; // 10 MB
keepReference(longLived);
}
static void keepReference(byte[] data) {
// объект остаётся достижимым
}
}