Общие вопросы
Смешанные вопросы по Java.
Открыть разделБаза Hintsage
Язык Java, JVM и экосистема серверной разработки.
Темы раздела
Смешанные вопросы по Java.
Открыть разделБазовая семантика языка, типы, методы, классы и ключевые конструкции.
Открыть разделНаследование, полиморфизм, интерфейсы, классы и разрешение методов.
Открыть разделJava Collections Framework, контракты, реализации и сложность операций.
Открыть разделJava Memory Model, потоки, синхронизация и java.util.concurrent.
Открыть разделЗагрузка классов, память JVM, GC, JIT и диагностика.
Открыть разделПараметризация типов, bounds, wildcards и стирание типов.
Открыть разделФункциональные интерфейсы, streams, collectors и параллельная обработка.
Открыть разделИерархия исключений, обработка ошибок и управление ресурсами.
Открыть разделПрактика
Какой механизм объясняет, почему статический метод интерфейса нельзя вызвать через переменную типа реализующего класса?
Как объясняется запрет проверки параметризованного типа через instanceof в Java?
При каких условиях JVM выполняет проверку оператора assert в Java?
Как Java сравнивает значения String в конструкции switch, если String — ссылочный тип?
Зачем компилятор Java создаёт bridge-метод при переопределении обобщённого метода?
Проверьте, будут ли вызовы increment() и reset() взаимно исключаться для одного объекта Counter при работе из разных потоков.
class Counter {
private int value;
synchronized void increment() {
value++;
}
void reset() {
synchronized (this) {
value = 0;
}
}
}
Объясните механизм: почему изменение значения String в Java создаёт новый объект, а не меняет существующий?
Оцените последствия публикации ссылки this из конструктора до завершения инициализации объекта.
Разберите случай, когда параметр метода и поле объекта имеют одно имя: какое значение получает обращение к имени без квалификатора?
Каким образом оператор && решает, вычислять ли правый операнд?
Предскажите последствия повторного обращения к классу после сбоя его статической инициализации. Первый и второй доступ выполнены в одном потоке.
public class Main {
static class Config {
static {
System.out.print("I");
throw new RuntimeException("init");
}
static int VALUE = 1;
}
public static void main(String[] args) {
for (int i = 0; i < 2; i++) {
try {
System.out.print(Config.VALUE);
} catch (Throwable e) {
System.out.print(e.getClass().getSimpleName() + " ");
}
}
}
}
Почему интерфейс Java не может объявить default-метод, переопределяющий equals?
Что гарантирует уникальность каждого значения enum в пределах одного типа Java?
Как Java проверяет, что final-поле инициализировано во всех конструкторах?
В ситуации, когда статический метод скрыт в классе-наследнике, какой вариант будет вызван через ссылку базового типа?
Зачем компилятор Java генерирует синтетические bridge-методы при наследовании обобщённых классов?
В случае конфликта между унаследованным методом класса и default-методом интерфейса какая реализация будет вызвана?
Разрешено ли переопределить метод с возвращаемым типом-подклассом исходного типа, и какое условие делает такое переопределение корректным?
Чем вызов переопределённого экземплярного метода через super отличается от вызова того же метода через текущий объект?
Как граница пакета влияет на статус метода с одинаковой сигнатурой в классе-наследнике?
Показано 61–80 из 403