В Java есть 51 зарезервированное слово, которое имеет очень специфическое значение и не может использоваться в качестве идентификаторов в коде приложения. Кроме того, 16 контекстных ключевых слов рассматриваются как ключевые слова, если они находятся в определенном контексте. Программисты не должны использовать эти ключевые слова ни для чего, кроме того, для чего они предназначены.
1. Что такое ключевое слово в Java?
Ключевые слова — это предопределенные, зарезервированные слова, которые имеют очень конкретное значение для компилятора. Эти ключевые слова не могут использоваться как переменные, методы, классы или любые другие идентификаторы.
В следующем операторе int — это ключевое слово, указывающее, что переменная age имеет целочисленный тип(32-битное целое число со знаком в формате дополнения к двум). Мы не можем использовать int в качестве имени переменной и т. д. Использование ключевых слов в качестве идентификаторов приведет к ошибкам компиляции.
int age;
- Ключевые слова const и goto зарезервированы, хотя в настоящее время они не используются.
- true, false и null могут показаться ключевыми словами, но они буквальны; мы не можем использовать их в качестве идентификаторов в наших программах.
- strictfp был добавлен в JDK 1.2.
- assert был добавлен в JDK 1.4.
- enum был добавлен в JDK 1.5.
- В более поздние версии таких функций, как запечатанные классы, записи и JPMS, было добавлено еще несколько контекстных ключевых слов.
2. Ключевые слова Java
Следующие 51 ключевое слово не могут использоваться в качестве идентификаторов.
Ключевое слово | Описание |
---|---|
абстрактный | Используется с классами и методами. Абстрактный класс не может быть создан. Абстрактный метод неполный без тела и должен быть реализован в дочернем классе для создания экземпляра дочернего класса. |
утверждать | позволяет нам проверить предположения о нашей программе. |
булев | представляет только одно из двух возможных значений: либо истина, либо ложь. |
перерыв | используется для завершения цикла for, while или do-while. Также может использоваться для завершения оператора switch. |
байт | может хранить целые числа от -128 до 127. |
случай | представляет собой блок кода в операторах switch. |
ловить | следует за блоком try и обрабатывает проверенные исключения, выданные блоком try, а также любые возможные непроверенные исключения. |
чар | используется для хранения одного символа. |
сорт | определяет класс. |
константа | — зарезервированное ключевое слово для константных значений. Вместо этого используйте final. |
продолжать | пропускает текущую итерацию циклов for, while или do-while и переходит к следующей итерации. |
по умолчанию | используется для указания блока по умолчанию в операторе switch и методов по умолчанию в функциональных интерфейсах. |
делать | используется для хранения операторов, которые будут выполняться повторно до тех пор, пока условие в операторе while не станет истинным. |
двойной | используется для объявления переменной, которая может содержать 64-битное число с плавающей точкой. |
еще | используется для указания альтернативных ветвей в операторе if. |
перечисление | — тип, поля которого состоят из фиксированного набора констант. |
расширяется | используется для расширения класса. |
финал | используется с переменными класса, методами или классами. Переменной final нельзя присвоить другое значение после ее инициализации. Метод final нельзя переопределить в дочернем классе. Ни один класс не может быть подклассом класса final. |
окончательно | содержит код, который будет выполняться каждый раз при завершении блока try-catch — как с ошибками, так и без них. |
плавать | используется для объявления переменной, которая может содержать 32-битное число с плавающей точкой. |
для | запустить цикл для многократного выполнения набора инструкций, когда условие истинно. Если число итераций известно, рекомендуется использовать цикл for. |
перейти | В настоящее время не используется. |
если | используется для написания условных операторов. |
орудий | используется для реализации интерфейса. |
импорт | импортировать пакет, класс или интерфейс в текущий класс. |
экземпляр | Проверяет, является ли объект экземпляром определенного класса или интерфейса. |
инт | используется для хранения 32-битного целочисленного значения. |
интерфейс | объявляет интерфейс. |
длинный | используется для хранения 64-битного целочисленного значения. |
родной | указывает на собственный код(зависит от платформы). |
новый | создает новый объект указанного класса. |
упаковка | объявляет пакет для хранения связанных классов. |
частный | модификатор доступа, указывающий, что доступ к методу или переменной возможен только в том классе, в котором он объявлен. |
защищенный | модификатор доступа, указывающий, что класс, метод или переменная могут быть доступны только в текущем пакете или унаследованы за пределами текущего пакета. |
публичный | модификатор доступа, указывающий, что класс, метод или переменная доступны отовсюду. |
возвращаться | используется для возврата из метода после завершения его выполнения. |
короткий | используется для хранения 16-битного целочисленного значения. |
статический | указывает, что переменная или метод принадлежит объекту класса, а не отдельным экземплярам этого класса. |
строгийfp | используется для ограничения вычислений с плавающей точкой с целью обеспечения переносимости. |
супер | используется для ссылки на объекты родительского класса. |
выключатель | помощь в предоставлении нескольких возможных путей выполнения программы. |
синхронизированный | отмечает блок или метод как критическую секцию, где одновременно выполняется только один поток. |
этот | используется для ссылки на текущий объект. |
бросать | используется для явного создания исключения из метода или конструктора. |
бросает | используется для объявления списка исключений, которые могут быть выданы этим методом или конструктором. |
переходный | используется для атрибутов/переменных класса, чтобы указать, что процесс сериализации этого класса должен игнорировать такие переменные. |
пытаться | содержит код приложения, который, как ожидается, будет работать в нормальных условиях. |
пустота | указывает, что метод не должен иметь возвращаемого значения. |
изменчивый | указывает на то, что атрибут не кэшируется локально в потоке и всегда считывается из «основной памяти». |
пока | непрерывно выполняет блок операторов до тех пор, пока определенное условие не станет истинным |
_(Подчеркивание) | добавлено в Java 9 для предотвращения записи подчеркиваний в качестве неиспользуемых лямбда-выражений, методов или формальных параметров catch. |
3. Контекстные ключевые слова
Следующие 16 слов можно интерпретировать как ключевые слова или как другие токены, в зависимости от контекста, в котором они появляются.
Ключевое слово | Описание |
---|---|
экспорт | используется для импорта и экспорта модулей. |
модуль | используется для объявления модулей. |
негерметичный | используется для определения запечатанных классов и интерфейсов. |
открыть | используется для объявления модулей. |
открывается | используется для импорта и экспорта модулей. |
разрешения | используется для определения запечатанных классов и интерфейсов. |
обеспечивает | используется для импорта и экспорта модулей. |
записывать | используется для определения нового |
требует | используется для импорта и экспорта модулей. |
запечатанный | используется для определения запечатанных классов и интерфейсов. |
к | используется для импорта и экспорта модулей. |
переходный | распознан как терминал в RequiresModifier. |
использует | используется для импорта и экспорта модулей. |
вар | используется для вывода типов локальных переменных. |
с | используется для импорта и экспорта модулей. |
урожай | используется для получения значения в операторе switch. |
- Для объявления модулей используются module и open.
- Для импорта и экспорта модулей используются параметры exports, opens, provide, required, to, uses и with.
- Переходный элемент распознается как терминал в RequiresModifier.
- var используется для определения типов локальных переменных.
- Функция yield используется для получения значения в операторе switch.
- Запись используется для определения новых типов записей.
- Незапечатанные, разрешающие и запечатанные классы используются для определения запечатанных классов и интерфейсов.
Изучение всех ключевых слов на одной странице невозможно. Мы изучим каждое ключевое слово Java в его специальном руководстве.