/ / Яка різниця між змінними класу і змінними-членами в Java - java, змінних

Яка різниця між змінними класу та змінні-членами у Java-java, змінних

Пояснити не так багато. Титулу достатньо, щоб пояснити це питання. Я отримав це на інтерв'ю сьогодні.

What are class variables and member variables in Java?

Дякую!

Відповіді:

3 для відповіді № 1

Як сказав Жуйнден, вони, мабуть, означали статичнийзмінні замість змінних класу. Для змінних-членів для доступу до змінної необхідний екземпляр класу. Наприклад, якщо я мав клас Foo, і він мав вбудовану змінну-член, єдиним способом, яким я мав би доступ, було робити щось подібне

Foo foo = new Foo();
doSomething(foo.bar);

Однак, якщо у мене є бар статичної змінної, це означає, що я можу отримати доступ до неї, навіть якщо у мене немає примірника об'єкта.

doSomething(Foo.bar)

без створення примірника Foo.

Побачити тут


1 для відповіді № 2

Змінна члена - один на об'єкт, кожен об'єкт має свою власну копію змінної екземпляра, тоді як змінна класу є однією на клас, кожен об'єкт цього класу має однакову змінну класу.

Змінна класу також називається статичною змінноюініціалізується, коли JVM завантажує клас, ймовірно, приймає приклад статичного блоку, якщо у вашій програмі немає основного методу, тоді як це не з вашими змінними члена.

Змінні класу слід використовувати, коли ви не хочете мати копію для кожного примірника змінні-члени повинні використовуватися, коли потрібно окрему копію для кожного екземпляра об'єкта.

З точки змінних класу збирання сміттямають довге життя, оскільки змінні класу пов'язані з класом, а не з окремим екземпляром. змінні класу очищаються, коли ClassLoader, який утримує клас, вивантажується. Це дуже рідко, а у випадку змінних-членів вони очищаються, коли примірник очищається. Сподіваюся, що це допомагає.