Easystatic

Что такое статические методы и поля?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

static-члены принадлежат классу, а не экземпляру. Все объекты класса разделяют одну static-переменную. static-метод можно вызвать без объекта (Math.max(1, 2)), у него нет this.

class Counter {
    static int total = 0;          // общий для всех экземпляров
    static final double PI = 3.14; // константа класса

    static { total = loadFromDb(); } // static-блок инициализации

    Counter() { total++; }
    static int current() { return total; } // без this
}
  • import static java.lang.Math.max; — можно вызывать max(1,2) без Math.;
  • Static nested class (static class Inner) — без ссылки на Outer;
  • Перегрузка static-методов работает, переопределение — нет (static binding).

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.