Spec-Zone.ru › Java Language Specification 11

Спецификация языка Java®

Java SE 11 Edition

Джеймс Гослинг

Билл Джой

Гай Стил

Гилад Браха

Алекс Бакли

Даниэль Смит

21 августа 2018 г.

Правовая информация

Содержание

1. Введение
1.1. Организация спецификации
1.2. Примерные программы
1.3. Нотация
1.4. Связь с предопределёнными классами и интерфейсами
1.5. Обратная связь
1.6. Ссылки
2. Грамматики
2.1. Безконтекстные грамматики
2.2. Лексическая грамматика
2.3. Синтаксическая грамматика
2.4. Нотация грамматики
3. Лексическая структура
3.1. Unicode
3.2. Лексические преобразования
3.3. Экранирование Unicode
3.4. Разделители строк
3.5. Элементы ввода и токены
3.6. Пробелы
3.7. Комментарии
3.8. Идентификаторы
3.9. Ключевые слова
3.10. Литералы
3.10.1. Целочисленные литералы
3.10.2. Литералы с плавающей точкой
3.10.3. Булевы литералы
3.10.4. Символьные литералы
3.10.5. Строковые литералы
3.10.6. Последовательности экранирования для символьных и строковых литералов
3.10.7. Нулевой литерал
3.11. Разделители
3.12. Операторы
4. Типы, значения и переменные
4.1. Виды типов и значений
4.2. Примитивные типы и значения
4.2.1. Целочисленные типы и значения
4.2.2. Целочисленные операции
4.2.3. Типы, форматы и значения чисел с плавающей точкой
4.2.4. Операции с числами с плавающей точкой
4.2.5. Тип boolean и булевые значения
4.3. Ссылочные типы и значения
4.3.1. Объекты
4.3.2. Класс Object
4.3.3. Класс String
4.3.4. Когда ссылочные типы одинаковы
4.4. Переменные типов
4.5. Параметризованные типы
4.5.1. Аргументы типа параметризованных типов
4.5.2. Члены и конструкторы параметризованных типов
4.6. Стирание типов
4.7. Реализуемые типы
4.8. Необработанные типы
4.9. Пересекающиеся типы
4.10. Подтипирование
4.10.1. Подтипирование среди примитивных типов
4.10.2. Подтипирование среди типов классов и интерфейсов
4.10.3. Подтипирование среди массивов типов
4.10.4. Наименьшее общее верхнее ограничение
4.10.5. Проекции типов
4.11. Где используются типы
4.12. Переменные
4.12.1. Переменные примитивного типа
4.12.2. Переменные ссылочного типа
4.12.3. Виды переменных
4.12.4. final Переменные
4.12.5. Начальные значения переменных
4.12.6. Типы, классы и интерфейсы
5. Преобразования и контексты
5.1. Виды преобразований
5.1.1. Тождественное преобразование
5.1.2. Расширяющее преобразование примитивных типов
5.1.3. Сужающее преобразование примитивных типов
5.1.4. Расширяющее и сужающее преобразование примитивных типов
5.1.5. Расширяющее преобразование ссылочных типов
5.1.6. Сужающее преобразование ссылочных типов
5.1.6.1. Допускаемое сужающее преобразование ссылочных типов
5.1.6.2. Проверенные и непроверенные сужающие преобразования ссылочных типов
5.1.6.3. Сужающие преобразования ссылочных типов во время выполнения
5.1.7. Преобразование в объектную форму
5.1.8. Преобразование из объектной формы
5.1.9. Непроверенное преобразование
5.1.10. Преобразование захвата
5.1.11. Преобразование строки
5.1.12. Запрещённые преобразования
5.1.13. Преобразование множества значений
5.2. Контексты присваивания
5.3. Контексты вызова
5.4. Контексты строк
5.5. Контексты приведения типов
5.6. Численные контексты
5.6.1. Модификация числового аргумента унарных операций
5.6.2. Модификация числового аргумента бинарных операций
6. Имена
END_OF_DOCUMENT_MARKER
6.1. Объявления
6.2. Имена и идентификаторы
6.3. Область видимости объявления
6.4. Перекрытие и затемнение
6.4.1. Перекрытие
6.4.2. Затемнение
6.5. Определение значения имени
6.5.1. Синтаксическая классификация имени в зависимости от контекста
6.5.2. Переклассификация контекстуально неоднозначных имён
6.5.3. Значение имён модулей и пакетов
6.5.3.1. Простые имена пакетов
6.5.3.2. Квалифицированные имена пакетов
6.5.4. Значение PackageOrTypeNames
6.5.4.1. Простые PackageOrTypeNames
6.5.4.2. Квалифицированные PackageOrTypeNames
6.5.5. Значение имён типов
6.5.5.1. Простые имена типов
6.5.5.2. Квалифицированные имена типов
6.5.6. Значение имён выражений
6.5.6.1. Простые имена выражений
6.5.6.2. Квалифицированные имена выражений
6.5.7. Значение имён методов
6.5.7.1. Простые имена методов
6.6. Управление доступом
6.6.1. Определение доступности
6.6.2. Подробности по protected доступу
6.6.2.1. Доступ к protected члену
6.6.2.2. Доступ к protected конструктору
6.7. Полные имена и канонические имена
7. Пакеты и модули
7.1. Члены пакета
7.2. Поддержка хоста для модулей и пакетов
7.3. Единицы компиляции
7.4. Объявления пакетов
7.4.1. Имянованные пакеты
7.4.2. Безымянные пакеты
7.4.3. Наблюдаемость и видимость пакета
7.5. Объявления импорта
7.5.1. Объявления импорта одного типа
7.5.2. Объявления импорта типа по требованию
7.5.3. Объявления импорта одного статического элемента
7.5.4. Объявления статического импорта по требованию
7.6. Объявления типов верхнего уровня
7.7. Объявления модулей
7.7.1. Зависимости
7.7.2. Экспортированные и открытые пакеты
7.7.3. Потребление сервисов
7.7.4. Предоставление сервисов
7.7.5. Безымянные модули
7.7.6. Наблюдаемость модуля
8. Классы
8.1. Объявления классов
8.1.1. Модификаторы классов
8.1.1.1. abstract классы
8.1.1.2. final классы
8.1.1.3. strictfp классы
8.1.2. Обобщённые классы и параметры типов
8.1.3. Вложенные классы и окружающие экземпляры
8.1.4. Суперклассы и подклассы
8.1.5. Суперинтерфейсы
8.1.6. Тело класса и объявления членов
8.2. Члены класса
8.3. Объявления полей
8.3.1. Модификаторы полей
8.3.1.1. static поля
8.3.1.2. final поля
8.3.1.3. transient поля
8.3.1.4. volatile поля
8.3.2. Инициализация полей
8.3.3. Ограничения на ссылки на поля в инициализаторах
8.4. Объявления методов
8.4.1. Формальные параметры
8.4.2. Подпись метода
8.4.3. Модификаторы методов
8.4.3.1. abstract методы
8.4.3.2. static методы
8.4.3.3. final методы
8.4.3.4. native методы
8.4.3.5. strictfp методы
8.4.3.6. synchronized методы
8.4.4. Обобщённые методы
8.4.5. Результат метода
8.4.6. Бросаемые исключения метода
8.4.7. Тело метода
8.4.8. Наследование, переопределение и скрытие
8.4.8.1. Переопределение (методами экземпляров)
8.4.8.2. Скрытие (методами класса)
8.4.8.3. Требования к переопределению и скрытию
8.4.8.4. Наследуемые методы с эквивалентными по переопределению сигнатурами
8.4.9. Перегрузка
8.5. Объявления типов членов
8.5.1. Объявления статических типов членов
8.6. Инициализаторы экземпляров
8.7. Статические инициализаторы
8.8. Объявления конструкторов
8.8.1. Формальные параметры
8.8.2. Подпись конструктора
8.8.3. Модификаторы конструктора
8.8.4. Обобщённые конструкторы
8.8.5. Бросаемые исключения конструктора
8.8.6. Тип конструктора
8.8.7. Тело конструктора
8.8.7.1. Явные вызовы конструкторов
8.8.8. Перегрузка конструкторов
8.8.9. Конструктор по умолчанию
8.8.10. Предотвращение создания экземпляра класса
8.9. Типы перечислений
8.9.1. Константы перечисления
8.9.2. Объявления тела перечисления
8.9.3. Члены перечисления
9. Интерфейсы
9.1. Объявления интерфейсов
9.1.1. Модификаторы интерфейсов
9.1.1.1. abstract Интерфейсы
9.1.1.2. strictfp Интерфейсы
9.1.2. Обобщённые интерфейсы и параметры типов
9.1.3. Супер- и под-интерфейсы
9.1.4. Тело интерфейса и объявления членов
9.2. Члены интерфейса
9.3. Объявления полей (констант)
9.3.1. Инициализация полей в интерфейсах
9.4. Объявления методов
9.4.1. Наследование и переопределение
9.4.1.1. Переопределение (методами экземпляра)
9.4.1.2. Требования к переопределению
9.4.1.3. Наследование методов с эквивалентными по сигнатуре методами-переопределениями
9.4.2. Перегрузка
9.4.3. Тело метода интерфейса
9.5. Объявления типов членов
9.6. Типы аннотаций
9.6.1. Элементы типов аннотаций
9.6.2. Значения по умолчанию для элементов типа аннотации
9.6.3. Повторяемые типы аннотаций
9.6.4. Предопределённые типы аннотаций
9.6.4.1. @Target
9.6.4.2. @Retention
9.6.4.3. @Inherited
9.6.4.4. @Override
9.6.4.5. @SuppressWarnings
9.6.4.6. @Deprecated
9.6.4.7. @SafeVarargs
9.6.4.8. @Repeatable
9.6.4.9. @FunctionalInterface
9.7. Аннотации
9.7.1. Нормальные аннотации
9.7.2. Аннотации-метки
9.7.3. Аннотации с одним элементом
9.7.4. Где могут располагаться аннотации
9.7.5. Несколько аннотаций одного типа
9.8. Функциональные интерфейсы
9.9. Типы функций
10. Массивы
10.1. Типы массивов
10.2. Переменные массивов
10.3. Создание массивов
10.4. Доступ к элементам массива
10.5. Исключение ArrayStoreException
10.6. Инициализаторы массивов
10.7. Члены массива
10.8. Class Объекты для массивов
10.9. Массив символов не является String
11. Исключения
11.1. Виды и причины исключений
11.1.1. Виды исключений
11.1.2. Причины исключений
11.1.3. Асинхронные исключения
11.2. Проверка исключений на этапе компиляции
11.2.1. Анализ исключений в выражениях
11.2.2. Анализ исключений в операторах
11.2.3. Проверка исключений
11.3. Обработка исключения во время выполнения
12. Выполнение
12.1. Запуск виртуальной машины Java
12.1.1. Загрузка класса Test
12.1.2. Связывание Test: верификация, подготовка, (необязательное) разрешение
12.1.3. Инициализация теста: выполнение инициализаторов
12.1.4. Вызов Test.main
12.2. Загрузка классов и интерфейсов
12.2.1. Процесс загрузки
12.3. Связывание классов и интерфейсов
12.3.1. Верификация двоичного представления
12.3.2. Подготовка типа класса или интерфейса
12.3.3. Разрешение символических ссылок
12.4. Инициализация классов и интерфейсов
12.4.1. Когда происходит инициализация
12.4.2. Подробная процедура инициализации
12.5. Создание новых экземпляров класса
12.6. Закрытие экземпляров класса
12.6.1. Реализация закрытия
12.6.2. Взаимодействие с моделью памяти
12.7. Выгрузка классов и интерфейсов
12.8. Выход из программы
13. Бинарная совместимость
END_OF_DOCUMENT_MARKER
13.1. Форма двоичного файла
13.2. Что такое и что не является бинарной совместимостью
13.3. Эволюция пакетов и модулей
13.4. Эволюция классов
13.4.1. abstract Классы
13.4.2. final Классы
13.4.3. public Классы
13.4.4. Родительские классы и интерфейсы
13.4.5. Параметры типа класса
13.4.6. Тело класса и объявления членов
13.4.7. Доступ к членам и конструкторам
13.4.8. Объявления полей
13.4.9. final Поля и static константные переменные
13.4.10. static Поля
13.4.11. transient Поля
13.4.12. Объявления методов и конструкторов
13.4.13. Параметры типа метода и конструктора
13.4.14. Формальные параметры метода и конструктора
13.4.15. Тип возвращаемого значения метода
13.4.16. abstract Методы
13.4.17. final Методы
13.4.18. native Методы
13.4.19. static Методы
13.4.20. synchronized Методы
13.4.21. Исключения метода и конструктора
13.4.22. Тело метода и конструктора
13.4.23. Перегрузка методов и конструкторов
13.4.24. Переопределение метода
13.4.25. Статические инициализаторы
13.4.26. Эволюция перечислений
13.5. Эволюция интерфейсов
13.5.1. public Интерфейсы
13.5.2. Родительские интерфейсы
13.5.3. Члены интерфейса
13.5.4. Параметры типа интерфейса
13.5.5. Объявления полей
13.5.6. Объявления методов интерфейса
13.5.7. Эволюция типов аннотаций
14. Блоки и операторы
14.1. Нормальное и прерывистое завершение операторов
14.2. Блоки
14.3. Объявления локальных классов
14.4. Операторы объявления локальных переменных
14.4.1. Объявители локальных переменных и типы
14.4.2. Выполнение операторов объявления локальных переменных
14.5. Операторы
14.6. Пустой оператор
14.7. Операторы с метками
14.8. Операторы выражений
14.9. Оператор if
14.9.1. Оператор if-then
14.9.2. Оператор if-then-else
14.10. Оператор assert
14.11. Оператор switch
14.12. Оператор while
14.12.1. Прерывистое завершение оператора while
14.13. Оператор do
14.13.1. Прерывистое завершение оператора do
14.14. Оператор for
14.14.1. Основной оператор for
14.14.1.1. Инициализация оператора for
14.14.1.2. Итерация оператора for
14.14.1.3. Прерывистое завершение оператора for
14.14.2. Расширенный оператор for
14.15. Оператор break
14.16. Оператор continue
14.17. Оператор return
14.18. Оператор throw
14.19. Оператор synchronized
14.20. Оператор try
14.20.1. Выполнение оператора try-catch
14.20.2. Выполнение операторов try-finally и try-catch-finally
14.20.3. try-with-resources
14.20.3.1. Базовый оператор try-with-resources
14.20.3.2. Расширенный оператор try-with-resources
14.21. Недостижимые операторы
15. Выражения
15.1. Оценка, денотация и результат
15.2. Формы выражений
15.3. Тип выражения
15.4. Выражения FP-strict
15.5. Выражения и проверки во время выполнения
15.6. Нормальное и прерывистое завершение оценки
15.7. Порядок оценки
15.7.1. Сначала оценить левую операнду
15.7.2. Оценить операнды перед операцией
15.7.3. Оценка учитывает скобки и приоритет
15.7.4. Список аргументов оценивается слева направо
15.7.5. Порядок оценки для других выражений
15.8. Первичные выражения
15.8.1. Лексические литералы
15.8.2. Литералы классов
15.8.3. this
15.8.4. Квалифицированные this
15.8.5. Выражения в скобках
15.9. Выражения создания экземпляров классов
15.9.1. Определение класса, который создается
15.9.2. Определение окружающих экземпляров
15.9.3. Выбор конструктора и его аргументов
15.9.4. Оценка выражений создания экземпляров классов во время выполнения
15.9.5. Объявления анонимных классов
15.9.5.1. Анонимные конструкторы
15.10. Массивы: выражения создания и доступа
15.10.1. Выражения создания массивов
15.10.2. Оценка выражений создания массивов во время выполнения
15.10.3. Выражения доступа к массивам
15.10.4. Оценка выражений доступа к массивам во время выполнения
15.11. Выражения доступа к полям
15.11.1. Доступ к полям с использованием первичного выражения
15.11.2. Доступ к членам суперкласса с помощью super
15.12. Выражения вызова методов
15.12.1. Шаг компиляции 1: Определить класс или интерфейс для поиска
15.12.2. Шаг компиляции 2: Определить сигнатуру метода
15.12.2.1. Идентификация потенциально применимых методов
15.12.2.2. Фаза 1: Идентификация методов с совпадающей арностью, применимых по строгому вызову
15.12.2.3. Фаза 2: Идентификация методов с совпадающей арностью, применимых по слабому вызову
15.12.2.4. Фаза 3: Идентификация методов, применимых по вызову с переменной арностью
15.12.2.5. Выбор наиболее специфичного метода
15.12.2.6. Тип вызова метода
15.12.3. Шаг компиляции 3: Выбранный метод подходит?
15.12.4. Оценка выражения вызова метода во время выполнения
15.12.4.1. Вычисление целевой ссылки (при необходимости)
15.12.4.2. Оценка аргументов
15.12.4.3. Проверка доступности типа и метода
15.12.4.4. Поиск вызываемого метода
15.12.4.5. Создание фрейма, синхронизация, передача управления
15.13. Выражения ссылок на методы
15.13.1. Объявление ссылки на метод во время компиляции
15.13.2. Тип ссылки на метод
15.13.3. Оценка ссылок на методы во время выполнения
15.14. Постфиксные выражения
15.14.1. Имена выражений
15.14.2. Постфиксный оператор инкремента ++
15.14.3. Постфиксный оператор декремента --
15.15. Унарные операторы
15.15.1. Префиксный оператор инкремента ++
15.15.2. Префиксный оператор декремента --
15.15.3. Унарный плюс-оператор +
15.15.4. Унарный минус-оператор -
15.15.5. Битовый дополняющий оператор ~
15.15.6. Логический дополняющий оператор !
15.16. Выражения приведения типов
15.17. Множительные операторы
15.17.1. Оператор умножения *
15.17.2. Оператор деления /
15.17.3. Оператор остатка %
15.18. Сложение операторы
15.18.1. Оператор конкатенации строк +
15.18.2. Операторы сложения (+ и -) для числовых типов
15.19. Операторы сдвига
15.20. Операторы отношения
15.20.1. Числовые операторы сравнения <, <=, > и >=
15.20.2. Оператор сравнения типов instanceof
15.21. Операторы равенства
15.21.1. Числовые операторы равенства == и !=
15.21.2. Булевы операторы равенства == и !=
15.21.3. Операторы равенства ссылок == и !=
15.22. Битовые и логические операторы
15.22.1. Целочисленные битовые операторы &, ^ и |
15.22.2. Булевы логические операторы &, ^ и |
15.23. Условный оператор И &&
15.24. Условный оператор ИЛИ ||
15.25. Условный оператор ? :
15.25.1. Булевы условные выражения
15.25.2. Числовые условные выражения
15.25.3. Ссылочные условные выражения
15.26. Операторы присваивания
15.26.1. Оператор простого присваивания =
15.26.2. Составные операторы присваивания
15.27. Lambda-выражения
15.27.1. Параметры лямбда-выражений
15.27.2. Тело лямбда-выражения
15.27.3. Тип лямбда-выражения
15.27.4. Вычисление лямбда-выражений во время выполнения
15.28. Постоянные выражения
16. Определённая инициализация
16.1. Определённая инициализация и выражения
16.1.1. Булевы константные выражения
16.1.2. Оператор логического И-ИЛИ &&
16.1.3. Оператор логического ИЛИ-ИЛИ ||
16.1.4. Оператор логического отрицания !
16.1.5. Условный оператор ? :
16.1.6. Условный оператор ? :
16.1.7. Другие выражения типа boolean
16.1.8. Выражения присваивания
16.1.9. Операторы ++ и --
16.1.10. Другие выражения
16.2. Определённая инициализация и операторы
16.2.1. Пустые операторы
16.2.2. Блоки
16.2.3. Операторы объявления локального класса
16.2.4. Операторы объявления локальных переменных
16.2.5. Операторы с метками
16.2.6. Операторы выражений
16.2.7. if Операторы
16.2.8. assert Операторы
16.2.9. switch Операторы
16.2.10. while Операторы
16.2.11. do Операторы
16.2.12. for Операторы
16.2.12.1. Часть инициализации for Оператора
16.2.12.2. Часть инкрементации for Оператора
16.2.13. break, continue, return и throw Операторы
16.2.14. synchronized Операторы
16.2.15. try Операторы
16.3. Определённая инициализация и параметры
16.4. Определённая инициализация и инициализаторы массивов
16.5. Определённая инициализация и константы перечислений
16.6. Определённая инициализация и анонимные классы
16.7. Определённая инициализация и типы членов
16.8. Определённая инициализация и статические инициализаторы
16.9. Определённая инициализация, конструкторы и инициализаторы экземпляров
17. Потоки и блокировки
17.1. Синхронизация
17.2. Наборы ожиданий и уведомления
17.2.1. Ожидание
17.2.2. Уведомление
17.2.3. Прерывания
17.2.4. Взаимодействие ожиданий, уведомлений и прерываний
17.3. Сон и уступка
17.4. Модель памяти
17.4.1. Общие переменные
17.4.2. Действия
17.4.3. Программы и порядок программы
17.4.4. Порядок синхронизации
17.4.5. Порядок «происходит-раньше»
17.4.6. Выполнения
17.4.7. Правильные выполнения
17.4.8. Выполнения и требования причинности
17.4.9. Наблюдаемое поведение и бесконечные выполнения
17.5. final Семантика полей
17.5.1. Семантика полей final
17.5.2. Чтение полей final во время создания
17.5.3. Последующее изменение полей final
17.5.4. Защищённые от записи поля
17.6. Разрыв слова
17.7. Неатомарное обращение с double и long
18. Вывод типов
18.1. Понятия и обозначения
18.1.1. Переменные вывода
18.1.2. Формулы ограничений
18.1.3. Границы
18.2. Приведение
18.2.1. Ограничения совместимости выражений
18.2.2. Ограничения совместимости типов
18.2.3. Ограничения подтипирования
18.2.4. Ограничения равенства типов
18.2.5. Ограничения обработанных исключений
18.3. Включение
18.3.1. Дополнительные пары границ
18.3.2. Границы, включающие преобразование захвата
18.4. Разрешение
18.5. Применение вывода
18.5.1. Вывод применимости вызова
18.5.2. Вывод типа вызова
18.5.2.1. Совместимость вызова поли метода
18.5.2.2. Дополнительные ограничения аргументов
18.5.3. Вывод параметризации функционального интерфейса
18.5.4. Вывод более специфичного метода
19. Синтаксис
A. Ограниченное предоставление лицензии

Список примеров

3.10.5-1. Строковые литералы
4.2.2-1. Целочисленные операции
4.2.4-1. Операции с плавающей точкой
4.3.1-1. Создание объектов
4.3.1-2. Тождественность примитивных и ссылочных типов
4.4-1. Члены переменной типа
4.5.1-1. Неограниченные универсальные параметры
4.5.1-2. Ограниченные универсальные параметры
4.8-1. Сырые типы
4.8-2. Сырые типы и наследование
4.11-1. Использование типа
4.12.3-1. Разные виды переменных
4.12.4-1. Константы
4.12.5-1. Начальные значения переменных
4.12.6-1. Тип переменной против класса объекта
5.0-1. Преобразования на этапе компиляции и выполнения
5.0-2. Преобразования в различных контекстах
5.1.2-1. Расширяющие преобразования примитивных типов
5.1.3-1. Сужающие преобразования примитивных типов
5.1.3-2. Сужающие преобразования примитивных типов, приводящие к потере информации
5.2-1. Присваивание для примитивных типов
5.2-2. Присваивание для ссылочных типов
5.2-3. Присваивание для массивов
5.5-1. Приведение типов для ссылочных типов
5.5-2. Приведение типов для массивов
5.5-3. Приведение типов несовместимых типов во время выполнения
5.6.1-1. Унарное численное продвижение
5.6.2-1. Бинарное численное продвижение
6.1-1. Уникальные имена пакетов
6.1-2. Уникальные имена модулей
6.1-3. Описание имен классов
6.1-4. Условные имена переменных типа
6.3-1. Область видимости объявлений типов
6.3-2. Область видимости объявлений локальных переменных
6.4-1. Попытка перекрытия локальной переменной
6.4.1-1. Перекрытие поля объявлением локальной переменной
6.4.1-2. Перекрытие объявления типа другим объявлением типа
6.5.2-1. Переклассификация контекстуально неоднозначных имён
6.5.5.2-1. Квалифицированные имена типов
6.5.6.1-1. Простые имена выражений
6.5.6.2-1. Квалифицированные имена выражений
6.5.6.2-2. Квалификация выражения именем типа
6.5.7.1-1. Простые имена методов
6.6-1. Управление доступом
6.6-2. Доступ к полям, методам и конструкторам public
6.6-3. Доступ к классам public и не-public классам
6.6-4. Доступ к полям, методам и конструкторам с пакетом доступа
6.6-5. Доступ к полям, методам и конструкторам private
6.6.2-1. Доступ к полям, методам и конструкторам protected
6.7-1. Полные квалифицированные имена
6.7-2. Полные квалифицированные имена против канонического имени
7.4.2-1. Пакет без имени
7.5.1-1. Импорт одного типа
7.5.1-2. Повторные объявления типов
7.5.1-3. Не импортировать подпакет
7.5.1-4. Импорт имени типа, являющегося также именем пакета
7.5.2-1. Импорт типа по требованию
7.6-1. Конфликтующие объявления типов верхнего уровня
7.6-2. Область видимости типов верхнего уровня
7.6-3. Полные квалифицированные имена
7.1.1-1. Разрешение директив requires transitive
8.1.1.1-1. Объявление абстрактного класса
8.1.1.1-2. Объявление абстрактного класса, запрещающего подклассы
8.1.2-1. Взаимно рекурсивные границы переменных типа
8.1.2-2. Вложенные обобщенные классы
8.1.3-1. Объявления вложенных классов и статические члены
8.1.3-2. Объявления вложенных классов
8.1.4-1. Прямые суперклассы и подклассы
8.1.4-2. Суперклассы и подклассы
8.1.4-3. Класс зависит от самого себя
8.1.5-1. Незаконные суперинтерфейсы
8.1.5-2. Суперинтерфейсы
8.1.5-3. Незаконное множественное наследование интерфейса
8.1.5-3. Реализация методов суперинтерфейса
8.2-1. Использование членов класса
8.2-2. Наследование членов класса с доступом по пакетам
8.2-3. Наследование членов класса public и protected
8.2-4. Наследование членов класса private
8.2-5. Доступ к членам недоступных классов
8.3-1. Поля с множественным наследованием
8.3-2. Повторное наследование полей
8.3.1.1-1. static поля
8.3.1.1-2. Скрытие переменных класса
8.3.1.1-3. Скрытие экземпляров переменных
8.3.1.3-1. Сохранение полей transient
8.3.1.4-1. volatile поля
8.3.2-1. Инициализация полей
8.3.2-2. Ссылка вперёд на переменную класса
8.3.3-1. Ограничения на ссылки на поля
8.4.2-1. Сигнатуры, эквивалентные переопределению
8.4.3.1-1. Переопределение абстрактного/абстрактного метода
8.4.3.1-2. Переопределение абстрактного/неабстрактного метода
8.4.3.6-1. synchronized мониторы
8.4.3.6-2. synchronized методы
8.4.6-1. Переменные типа в качестве типов выбрасываемых исключений
8.4.8-1. Наследование
8.4.8.1-1. Переопределение
8.4.8.1-2. Переопределение
8.4.8.2-1. Вызов скрытых методов класса
8.4.8.3-1. Ковариативные типы возвращаемых значений
8.4.8.3-2. Предупреждение о неиспользуемых типах возвращаемых значений
8.4.8.3-3. Неверное переопределение из-за throws
8.4.8.3-4. Стирание влияет на переопределение
8.4.9-1. Перегрузка
8.4.9-2. Перегрузка, переопределение и скрытие
8.8-1. Объявления конструкторов
8.8.7-1. Тела конструкторов
8.8.7.1-1. Ограничения на выражения явного вызова конструктора
8.8.7.1-2. Квалифицированный вызов конструктора суперкласса
8.8.9-1. Конструкторы по умолчанию
8.8.9-2. Доступность конструкторов против классов
8.8.10-1. Предотвращение создания экземпляров через доступность конструктора
8.9.2-1. Объявления тела перечислений
8.9.2-2. Ограничение на самоссылку константы перечисления
8.9.3-1. Итерация по константам перечисления с циклом с усиленным for
8.9.3-2. Переключение по константам перечисления
8.9.3-3. Константы перечисления с телами классов
8.9.3-4. Множественные типы перечислений
9.3-1. Неоднозначные унаследованные поля
9.3-2. Поля с множественным наследованием
9.3.1-1. Ссылка вперёд на поле
9.4.2-1. Перегрузка объявления abstract метода
9.6.1-1. Объявление аннотационного типа
9.6.1-2. Объявление аннотационного типа-метки
9.6.1-3. Объявления аннотационных типов с одним элементом
9.6.2-1. Объявление аннотационного типа с значениями по умолчанию
9.6.3-1. Неправильно сформированный содержащий аннотационный тип
9.6.3-2. Ограничение на повторение аннотаций
9.6.3-3. Повторяющийся аннотационный тип
9.7.1-1. Обычные аннотации
9.7.2-1. Аннотации-метки
9.7.3-1. Аннотации с одним элементом
9.8-1. Функциональные интерфейсы
9.8-2. Функциональные интерфейсы и стирание
9.8-3. Обобщённые функциональные интерфейсы
9.9-1. Типы функций
9.9-2. Обобщённые типы функций
10.2-1. Объявление переменных массива
10.2-2. Переменные массива и типы массивов
10.4-1. Доступ к элементам массива
10.5-1. ArrayStoreException
10.6-1. Инициализаторы массивов
10.7-1. Массивы могут быть клонированы
10.7-2. Поделенные подмассивы после клонирования
10.8-1. Class Объект массива
10.8-2. Class Объекты массива совместно используются
11.2.3-1. Обработка проверочных исключений
11.3-1. Бросание и перехват исключений
12.4.1-1. Суперклассы инициализируются до подклассов
12.4.1-2. Инициализируется только класс, в котором объявлено поле static
12.4.1-3. Инициализация интерфейса не инициализирует суперинтерфейсы
12.5-1. Вычисление создания экземпляра
12.5-2. Динамическая диспетчеризация во время создания экземпляра
13.4.4-1. Изменение суперкласса
13.4.6-1. Изменение тела класса
13.4.6-2. Изменение суперкласса
13.4.7-1. Изменение доступа
13.4.8-1. Добавление объявления поля
13.4.9-1. Изменение переменной на final
13.4.16-1. Изменение метода на abstract
13.4.17-1. Изменение метода на final
13.4.23-1. Добавление перегруженного метода
13.5.3-1. Удаление члена интерфейса
13.5.6-1. Добавление метода по умолчанию
14.3-1. Объявления локальных классов
14.4-1. Локальные переменные, объявленные с var
14.4.1-1. Тип локальных переменных, объявленных с var
14.7-1. Метки и идентификаторы
14.11-1. Переход в операторе switch
14.13-1. Оператор do
14.14-1. Расширенный for и массивы
14.14-2. Расширенный for и приведение к примитивному типу
14.15-1. Оператор break
14.16-1. Оператор continue
14.19-1. Оператор synchronized
14.20.1-1. Перехват исключения
14.20.2-1. Обработка необработанного исключения с помощью finally
14.21-1. Условный компиляция
15.7.1-1. Операнд слева вычисляется первым
15.7.1-2. Неявный операнд слева в операторе составного присваивания
15.7.1-3. Прерывание вычисления левого операнда
15.7.2-1. Вычисление операндов перед операцией
15.7.4-1. Порядок вычисления при вызове метода
15.7.4-2. Прерывание выражения аргумента
15.8.3-1. Выражение this
15.9.4-1. Порядок вычисления и обнаружение ошибок памяти
15.10.2-1. Вычисление создания массива
15.10.2-2. Создание многомерных массивов
15.10.2-3. OutOfMemoryError и вычисление выражения размерности
15.10.4-1. Ссылка на массив вычисляется первой
15.10.4-2. Прерывание вычисления ссылки на массив
15.10.4-3. null ссылка на массив
15.11.1-1. Статическая привязка для доступа к полю
15.11.1-2. Переменная получателя не имеет значения для доступа к полю static
15.11.2-1. Выражение super
15.12.2-1. Применимость метода
15.12.2-2. Тип возвращаемого значения не учитывается при выборе метода
15.12.2-3. Выбор наиболее конкретного метода
15.12.4.1-1. Ссылки на целевые объекты и методы static
15.12.4.1-2. Порядок вычисления во время вызова метода
15.12.4.4-1. Переопределение и вызов метода
15.12.4.4-2. Вызов метода с использованием super
15.12.4.5-1. Подпись вызываемого метода имеет другую стёртую форму, чем подпись метода во время компиляции
15.17.3-1. Целочисленный оператор остатка
15.17.3-2. Оператор остатка с плавающей точкой
15.18.1-1. Конкатенация строк
15.18.1-2. Конкатенация строк и условные операторы
15.20.2-1. Оператор instanceof
15.26.1-1. Простое присваивание элементу массива
15.26.2-1. Составное присваивание элементу массива
15.26.2-2. Значение левой части составного присваивания сохраняется перед вычислением правой части
15.28-1. Константные выражения
16-1. Определённое присваивание учитывает структуру операторов и выражений
16-2. Определённое присваивание не учитывает значения выражений
16-3. Определённое неприсваивание
17.4-1. Неправильно синхронизированные программы могут демонстрировать неожиданное поведение
17.4.5-1. Совместимость happens-before
17.4.8-1. Совместимость happens-before недостаточна
17.5-1. final поля в модели памяти Java
17.5-2. final поля для безопасности
17.5.3-1. Агрессивная оптимизация final полей
17.6-1. Обнаружение разрывов слов

© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API