Инстанцирование (Instantiation) / Создание экземпляра
Инстанцирование — это создание конкретного объекта по чертежам, описанным в классе.
Lifecycle: 1. Declaration. 2. Allocation. 3. Initialization. 4. Reference assignment. 5. Destruction (Garbage Collection).
graph LR
Center["Инстанцирование (Instantiation) / Создание экземпляра"]:::main
Rel_database_security["database-security"]:::related -.-> Center
click Rel_database_security "/terms/database-security"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простыми словами
Представь, что у тебя есть форма для лепки песка. Форма — это класс. Когда ты плотно набиваешь её песком и переворачиваешь, получается пасочка. Создание пасочки — это инстанцирование. Ты можешь сделать сто пасочек одной формой, и каждая будет отдельным 'экземпляром'.
🤓 Expert Deep Dive
В контексте производительности инстанцирование — одна из самых 'дорогих' операций. Она требует блокировки памяти, поиска свободного блока и записи заголовков объекта. В высоконагруженных системах (например, в движках браузеров или играх) используют 'Пул объектов' (Object Pool). Вместо того чтобы постоянно создавать (инстанцировать) и удалять пули в шутере, программа создает их один раз при загрузке и просто перемещает их в памяти, когда это нужно. Это позволяет избежать тормозов, вызванных частой работой сборщика мусора.