Общие вопросы
Смешанные вопросы по Java.
Открыть разделБаза Hintsage
Язык Java, JVM и экосистема серверной разработки.
Темы раздела
Смешанные вопросы по Java.
Открыть разделБазовая семантика языка, типы, методы, классы и ключевые конструкции.
Открыть разделНаследование, полиморфизм, интерфейсы, классы и разрешение методов.
Открыть разделJava Collections Framework, контракты, реализации и сложность операций.
Открыть разделJava Memory Model, потоки, синхронизация и java.util.concurrent.
Открыть разделЗагрузка классов, память JVM, GC, JIT и диагностика.
Открыть разделПараметризация типов, bounds, wildcards и стирание типов.
Открыть разделФункциональные интерфейсы, streams, collectors и параллельная обработка.
Открыть разделИерархия исключений, обработка ошибок и управление ресурсами.
Открыть разделПрактика
Поясните асимметрию совместимости wildcard-параметризаций: почему коллекция Integer совместима с ожиданием коллекции неизвестного подтипа Number, но коллекция с неизвестным подтипом Number не совместима с ожиданием коллекции Integer?
В API метод должен перемещать элементы между двумя коллекциями согласованного типа. Почему два независимых wildcard не выражают это требование, а общий параметр типа выражает?
Представьте, что нужно описать конечный набор типизированных значений. Почему Java не разрешает объявлять обобщённый enum?
Что мешает Java использовать примитивный тип в качестве аргумента параметра типа?
При проектировании класса, реализующего один и тот же обобщённый интерфейс с двумя разными аргументами типа, объясните запрет такой конструкции в Java.
Разберите ограничение: почему wildcard в Java не может одновременно иметь верхнюю и нижнюю границу?
Что препятствует обобщённому коду создать экземпляр параметра типа через обычный конструктор?
В практическом API нужно вернуть объект типа T после проверки значения во время выполнения. Какую роль здесь играет Class<T>?
При чтении из коллекции с параметризацией «неизвестный супертип Integer» какой статический тип получает элемент и почему?
Чем List<?> отличается от List<Object> по допустимым операциям записи и чтения?
Метод объявлен с параметром типа в throws: как компилятор определяет, обязан ли вызывающий обработать такое исключение?
Какова область действия параметра типа, объявленного только у конструктора класса без параметров типа?
Что изменяется при явном указании аргумента типа обобщённого метода по сравнению с автоматическим выводом типа?
Что объясняет ситуацию, когда приведение объекта к параметризованному типу проходит, но ошибка возникает только при чтении элемента?
Допустим, тип T может наследовать реализацию Comparable у своего базового класса. Зачем ограничивать T через Comparable<? super T>, а не через Comparable<T>?
Сопоставьте ковариантность массивов Java с инвариантностью обобщённых коллекций: какой механизм безопасности обеспечивает каждое решение?
В чём различие между наследником, который фиксирует параметр обобщённого базового класса, и наследником, который передаёт этот параметр дальше?
Как стирание типов обеспечивает бинарную совместимость старого байткода с библиотекой, в которой API позже параметризовали?
Как система типов Java объясняет запрет использовать параметризованный тип как тип элемента аннотации?
Разрешено ли указывать wildcard в качестве аргумента типа у наследуемого или реализуемого типа Java?
Показано 281–300 из 403