Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Чем переменная класса отличается от экземпляра класса?

#java


Например, у нас есть класс MyClass.

Чем вот эта запись

MyClass class = new MyClass();


отличается от этой

MyClass class;

    


Ответы

Ответ 1



MyClass myClass = new MyClass(); Вы объявляете переменную или поле myClass типа MyClass. Создаете новый экземпляр (объект) класса MyClass. Присваиваете ссылку на созданный экземпляр переменной. MyClass myClass; Вы объявляете переменную или поле myClass типа MyClass. Переменная не инициализирована никаким значением, работать с ней нельзя, пока вы не присвоите ей ссылку на какой-нибудь экземпляр.

Ответ 2



Для более эффективного использования памяти, в Java используются так называемые пулы. Есть строковый пул, Integer pool и тд. Вот пример кода: Integer a = 120; Integer b = 120; Integer c = 130; Integer d = 130; Integer e = 127; Integer f = 127; System.out.println("a==b :" + (a==b)); // true , cравнение двух ссылок на объект но объект не создавался System.out.println("c==d :"+ (c==d) ); // false, мы вышли за границы System.out.println("e==f :" + (e==f) ); // true Что вам еще пригодится: "Разница между Stack и Heap памятью в Java" Вот на stackoverflow запись >>>

Комментариев нет:

Отправить комментарий