Переменные, static, глобальные

119
21 января 2020, 19:10

Переменные экземпляра, объявленные как static, по существу, являются глобальными.

Как это понять?

Answer 1

Переменная экземпляра - это поле класса. Чтобы её использовать нужно создать экземпляр класса, причём у каждого экземпляра класса это поле своё. Но если это поле объявлено как static, то получается что это поле (переменная) одна для ВСЕХ экземпляров класса, и её можно использовать без создания экземпляра класса.

Class A {
    public int a;
}
Class B {
    public static int b;
}
Class Main {
    public static void main (String args[]) {
        A newA = new A();
        System.out.println(newA.a); //чтобы использовать переменную a класса A пришлось 
                                    //создать экземпляр класса newA
        System.out.println(B.b);    //Чтобы использовать переменную b класса B нам не 
                                    //нужно создавать для этого экземпляр класса
    }
}
READ ALSO
Перевести время видео youtube?

Перевести время видео youtube?

Получил время видео youtube, через Json PT24M30S, можно как нибудить перевести, это время в секунды?

127
Обязательно ли использовать @Order вместе с @ControllerAdvice?

Обязательно ли использовать @Order вместе с @ControllerAdvice?

У меня в приложении есть несколько самописных Spring AOP-аспектов, для которых установлен порядок вызова с помощью аннотации @Order

140
ключевое слово статик

ключевое слово статик

Бывает нужно, чтобы переменная была в единственном экземпляреКак, например, переменная System

108
Java dependencies. The following modules must have the same JDK assigned because of cyclic dependencies

Java dependencies. The following modules must have the same JDK assigned because of cyclic dependencies

Речь идет о java проекте с использованием maven и POM dependencies (только начал с ними знакомиться)

292