Spec-Zone.ru › Java Language Specification 7

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

Java SE 7 издание

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

Билл Джой

Гай Стил

Гилад Брача

Алекс Бакли

28 февраля 2013 г.

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

Содержание

Предварительное замечание к Java SE 7 изданию
Предварительное замечание к Третьему изданию
Предварительное замечание ко Второму изданию
Предварительное замечание к Первому изданию
1. Введение
1.1. Организация спецификации
1.2. Примерные программы
1.3. Нотация
1.4. Связь с предопределёнными классами и интерфейсами
1.5. Ссылки
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. Литерал null
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.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.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.5.1. Приведение типа ссылки
5.5.2. Проверяемые и непроверяемые приведения
5.5.3. Проверяемые приведения во время выполнения
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.5.7.2. Квалифицированные имена методов
6.6. Управление доступом
6.6.1. Определение доступности
6.6.2. Подробности о защищённом доступе
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. Объявления типов верхнего уровня
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.2.1. Инициализаторы переменных класса
8.3.2.2. Инициализаторы переменных экземпляра
8.3.2.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. Объявления тела перечисления
9. Интерфейсы
END_OF_DOCUMENT_MARKER
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.5. Объявления типов-членов
9.6. Типы аннотаций
9.6.1. Элементы типов аннотаций
9.6.2. Значения по умолчанию для элементов типов аннотаций
9.6.3. Предопределенные типы аннотаций
9.6.3.1. @Target
9.6.3.2. @Retention
9.6.3.3. @Inherited
9.6.3.4. @Override
9.6.3.5. @SuppressWarnings
9.6.3.6. @Deprecated
9.6.3.7. @SafeVarargs
9.7. Аннотации
9.7.1. Обычные аннотации
9.7.2. Аннотации-метки
9.7.3. Аннотации с единственным элементом
10. Массивы
10.1. Типы массивов
10.2. Переменные массивов
10.3. Создание массивов
10.4. Доступ к элементам массива
10.5. Исключение Array Store Exception
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. Бинарная совместимость
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 поля и константы
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. abstract методы
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-с-ресурсами
14.20.3.1. Базовый try-с-ресурсами
14.20.3.2. Расширенный try-с-ресурсами
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.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.2.7. Вывод аргументов типа на основе фактических аргументов
15.12.2.8. Вывод неразрешенных аргументов типа
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.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.26. Операторы присваивания
15.26.1. Оператор простого присваивания =
15.26.2. Составные операторы присваивания
15.27. Выражение
15.28. Постоянные выражения
16. Определенное присваивание
END_OF_DOCUMENT_MARKER
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. Синтаксис
Индекс
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-1. Преобразование приведения для ссылочных типов
5.5.1-2. Преобразование приведения для массивов
5.5.3-1. Несовместимые типы во время выполнения
5.6.1-1. Унарное числовое продвижение
5.6.2-1. Двоичное числовое продвижение
6.1-1. Уникальные имена пакетов
6.1-2. Дескриптивные имена классов
6.1-3. Стандартные имена переменных типа
6.2-1. Идентификаторы и затемнение
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.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.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. Полные имена
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-4. Незаконное множественное наследование интерфейса
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-1. Инициализация полей вне очереди
8.3.2.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-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.1-1. Итерация по константам перечисления с расширенным циклом for
8.9.1-2. Использование java.util.EnumSet для поддиапазонов
8.9.2-1. Ограничение на самоссылку констант перечисления
8.9.2-2. Тип перечисления с членами
8.9.2-3. Множественные типы перечисления
8.9.2-4. Константы перечисления с телами классов
9.3-1. Неоднозначные унаследованные поля
9.3-2. Множественные унаследованные поля
9.3.1-1. Вперёд объявление поля
9.4.1.1-1. Переопределение объявления метода abstract
9.4.2-1. Перегрузка объявления метода abstract
9.6.1-1. Объявления типов аннотаций
9.6.1-2. Объявления типов аннотаций с одним элементом
9.6.2-3. Сложное объявление типа аннотации
9.6.2-1. Объявление типа аннотации со значениями по умолчанию
9.7.1-1. Нормальные аннотации
9.7.2-1. Аннотации-метки
9.7.3-1. Аннотации с одним элементом
10.2-1. Объявления переменных массивов
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.9-2. Условная компиляция
13.4.16-1. Изменение метода на abstract
13.4.17-1. Изменение метода на final
13.4.23-1. Добавление перегруженного метода
13.5.3-1. Удаление члена интерфейса
14.3-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
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.1-1. Вычисление создания массива
15.10.1-2. Создание многомерного массива
15.10.1-3. OutOfMemoryError и вычисление выражения размерности
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.13-1. Ссылка на массив вычисляется первой
15.13-2. Прерывистое завершение вычисления ссылки на массив
15.13-3. null Ссылка на массив
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