Что происходит при создании объектов в Java?

Каждый раз, когда вы создаете объект в Java, вы предполагаете, что наверное для него выделяется память, он как-то инициализируется, а затем вы получаете ссылку на вновь созданный объект. В этой статье я разберу механизм создания Java объектов чуть более подробно. Итак, что же происходит?

1). Чтение файла .class.

Как вы уже знаете, каждый класс в Java хранится в своем файле с расширением .class. JVM выполняет поиска файла в CLASSPATH по его имени. Полное имя класса представляет собой имя Class Loader’a + имя класса(с учетом иерархии пакетов). Данный файл на протяжении работы программы загружается лишь однажды и происходит это либо при обращении к статическим членам класса(статическим полям или вызове статических методов) либо при использовании оператора new при обычном создании объекта:

2). Инициализация статических членов.

Все статические поля и методы инициализируются и сохраняются в статическую область памяти.

3). Выделение памяти.

Теперь в общей куче(heap) под объект выделяется физическая память.

4). Инициализация полей класса.

Поля класс инициализируются либо начальными значениями(0 — для числовых типов, null — для ссылочных) или значениями, заданными пользователем.

5). Вызов конструктора класса.

Наконец, последним действием, которое будет выполнено, является вызов конструктора.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *