Код IT
← Каталог

JVM, память и потоки — Куча

Фрагмент из «JVM, память и потоки»: Куча.

Java main.java
public class OldGenExample {
    // Статическая коллекция удерживает объекты в памяти
    private static List<byte[]> cache = new ArrayList<>();
    
    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            // Крупные объекты могут сразу попасть в Old Generation
            byte[] bigObject = new byte[1024 * 1024 * 5]; // 5 MB
            
            // Объекты, пережившие несколько сборок в Young,
            // перемещаются в Old Generation
            cache.add(bigObject);
            
            // Имитация работы приложения
            try { Thread.sleep(100); } catch (InterruptedException e) {}
        }
    }
}
public class OldGenExample {
    // Статическая коллекция удерживает объекты в памяти
    private static List<byte[]> cache = new ArrayList<>();
    
    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            // Крупные объекты могут сразу попасть в Old Generation
            byte[] bigObject = new byte[1024 * 1024 * 5]; // 5 MB
            
            // Объекты, пережившие несколько сборок в Young,
            // перемещаются в Old Generation
            cache.add(bigObject);
            
            // Имитация работы приложения
            try { Thread.sleep(100); } catch (InterruptedException e) {}
        }
    }
}