/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/java/java-503-23-013/main.java
44 строки
2 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
public class ObjectLifecycle { public static void main(String[] args) { // Этап 1: Загрузка класса Person (происходит при первом использовании) // Этап 2: Создание объекта Person p = new Person("John", 25); // - выделение памяти в Eden // - заполнение полей значениями по умолчанию // - вызов конструктора родительского класса (Object) // - выполнение инициализаторов полей // - выполнение тела конструктора // Этап 3: Использование p.setName("Jonathan"); System.out.println(p.getName()); // Создание второй ссылки на тот же объект Person p2 = p; // Этап 4: Объект остаётся достижимым через p2 p = null; // Объект становится недостижимым только после обнуления всех ссылок p2 = null; // Этап 5: Сборка мусора (время не определено) System.gc(); // рекомендация JVM, не команда // Объект с финализацией проходит дополнительный этап Resource resource = new Resource(); resource = null; // finalize() вызывается в отдельном потоке перед удалением } static class Resource { private byte[] data = new byte[1024 * 1024]; @Override protected void finalize() throws Throwable { System.out.println("Ресурс освобождён"); super.finalize(); } } }