Intereting Posts
LinkageError для экземпляра класса Kotlin с уведомлением метода () Документирование параметров параметра функции в Котлине Получить ClassLoader из gradle org.gradle.api.Project? Kotlin использует специальный репозиторий SpringData Jpa Kotlin: Как получить группу захвата первой строки, которая соответствует? Android неопределенный ProgressBar не появляется Как получить общий класс param в Котлине? Могу ли я получить KFunction из переменной типа функции в Kotlin? Котлин: Подавить неиспользуемое имущество? Пройдет ли lambdas к Observable.subscribe в kotlin приведет к утечкам памяти? Как избежать выражения объекта для функций, возвращающих интерфейс SAM Как получить значение перечисления типа raw из класса enum и строки в kotlin Каков самый простой способ получить потокобезопасное свойство в Котлин? Как заменить все вхождения подстроки в котлин Есть ли какие-либо документы об модификаторах доступа в Котлин?

Как объекты и сопутствующие объекты Kotlin и ленивые работы с памятью

Я не мог найти нигде о том, как объекты, объекты-компаньоны и ленивые работают с памятью. Может ли кто-нибудь объяснить мне, как они работают с памятью?

благодаря

Это довольно неопределенный вопрос, на который можно ответить, глядя на байт-код.

Объявление объекта

Объявление объекта – одноэлементное. Он имеет статическое поле под названием INSTANCE которое инициализируется в статическом блоке ( <clinit> ).

Объект компаньона

Companion является своего рода внутренним классом, но является singleton и ведет себя как объявление объекта.

Ленивый делегат

Ленивый делегат (каждый делегат) – отдельный объект. Каждый раз, когда вы создаете ленивое поле, создается экземпляр объекта-делегата.