Инстанцирование (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). Вместо того чтобы постоянно создавать (инстанцировать) и удалять пули в шутере, программа создает их один раз при загрузке и просто перемещает их в памяти, когда это нужно. Это позволяет избежать тормозов, вызванных частой работой сборщика мусора.

📚 Источники