Разница между анонимным и декларируемым (объявляемым) объектом



• анонимный объект (object) инициализируется непосредственно при использовании;



• декларированный (объявляемый) объект (object Name) инициализируется лениво, в момент первого к нему доступа;



• вспомогательный объект (companion object) инициализируется в момент, когда класс, к которому он относится, загружен и семантически совпадает со статическим инициализатором Java.