stringtranslate.com

Список ключевых слов Java

Фрагмент кода Java с ключевыми словами, выделенными синим жирным шрифтом

В языке программирования Java ключевым словом является любое из 68 зарезервированных слов [1] , которые имеют предопределенное значение в языке. Из-за этого программисты не могут использовать ключевые слова в некоторых контекстах, таких как имена переменных , методов , классов или как любой другой идентификатор . [2] Из этих 68 ключевых слов 17 зарезервированы только контекстно и иногда могут использоваться как идентификатор, в отличие от стандартных зарезервированных слов. Из-за их особых функций в языке большинство интегрированных сред разработки для Java используют подсветку синтаксиса для отображения ключевых слов другим цветом для легкой идентификации.

Список ключевых слов Java

_
Добавленный в Java 9 символ подчеркивания стал ключевым словом и больше не может использоваться в качестве имени переменной. [3]
abstract
Метод без определения должен быть объявлен как абстрактный, а содержащий его класс должен быть объявлен как абстрактный. Абстрактные классы не могут быть инстанциированы. Абстрактные методы должны быть реализованы в подклассах. Ключевое слово abstract не может использоваться с переменными или конструкторами. Обратите внимание, что абстрактный класс вообще не обязан иметь абстрактный метод.
assert(добавлено в J2SE 1.4 ) [4]
Assert описывает предикат (утверждение true–false), помещенный в программу Java, чтобы указать, что разработчик думает, что предикат всегда истинен в этом месте. Если утверждение оценивается как ложное во время выполнения, возникает ошибка утверждения, которая обычно приводит к прерыванию выполнения. Утверждения отключены во время выполнения по умолчанию, но могут быть включены через параметр командной строки или программно через метод в загрузчике классов.
boolean
Определяет булеву переменную только для значений "true" или "false". По умолчанию значение примитивного типа boolean равно false. Это ключевое слово также используется для объявления того, что метод возвращает значение примитивного типа boolean.
break
Используется для завершения выполнения в текущем теле цикла.
Используется для выхода из switchблока.
byte
Ключевое byteслово используется для объявления поля, которое может содержать 8-битное целое число со знаком в формате дополнения до двух. [5] [6] Это ключевое слово также используется для объявления того, что метод возвращает значение примитивного типа byte. [7] [8]
case
Оператор в switchблоке может быть помечен одним или несколькими caseили defaultметками. switchОператор оценивает свое выражение, затем выполняет все операторы, которые следуют за соответствующей caseметкой; см switch. . [9] [10]
catch
Используется в сочетании с tryблоком и необязательным finallyблоком. Операторы в catchблоке указывают, что делать, если блок выдает исключение определенного типа try.
char
Определяет символьную переменную, способную хранить любой символ из набора символов исходного файла Java.
class
Тип, определяющий реализацию определенного вида объекта. Определение класса определяет поля экземпляра и класса , методы и внутренние классы , а также указывает интерфейсы, реализуемые классом, и непосредственный суперкласс класса. Если суперкласс явно не указан, суперкласс указан неявно . Ключевое слово class также можно использовать в форме Class .class для получения объекта Class без необходимости в экземпляре этого класса. Например, String.class можно использовать вместо выполнения new String().getClass() .Object
continue
Используется для возобновления выполнения программы в конце текущего тела цикла. Если за ним следует метка, continueвозобновляет выполнение в конце охватывающего тела цикла с меткой.
default
Ключевое defaultслово может быть необязательно использовано в операторе switch для обозначения блока операторов, которые будут выполнены, если ни один из них не caseсоответствует указанному значению; см switch. . [9] [10] В качестве альтернативы defaultключевое слово также может быть использовано для объявления значений по умолчанию в аннотации Java . Начиная с Java 8, defaultключевое слово может быть использовано для того, чтобы разрешить интерфейсу предоставлять реализацию метода.
do
Ключевое doслово используется в сочетании с whileдля создания цикла do-while , который выполняет блок операторов, связанных с циклом, а затем проверяет логическое выражение, связанное с while. Если выражение оценивается как true, блок выполняется снова; это продолжается до тех пор, пока выражение не оценивается как false. [11] [12]
double
Ключевое doubleслово используется для объявления переменной, которая может содержать 64-битное число с плавающей точкой двойной точности IEEE 754. [5] [6] Это ключевое слово также используется для объявления того, что метод возвращает значение примитивного типа . [7] [8]double
else
Ключевое elseслово используется в сочетании с ifдля создания оператора if-else , который проверяет логическое выражение ; если выражение оценивается как true, блок операторов, связанных с , ifоценивается; если оно оценивается как false, блок операторов, связанных с , elseоценивается. [13] [14]
enum(добавлено в J2SE 5.0 ) [4]
Ключевое слово Java, используемое для объявления перечисляемого типа . Перечисления расширяют базовый класс Enum.
extends
Используется в объявлении класса для указания суперкласса; используется в объявлении интерфейса для указания одного или нескольких суперинтерфейсов. Класс X расширяет класс Y для добавления функциональности, либо добавляя поля или методы в класс Y, либо переопределяя методы класса Y. Интерфейс Z расширяет один или несколько интерфейсов путем добавления методов. Класс X называется подклассом класса Y; Интерфейс Z называется подинтерфейсом интерфейсов, которые он расширяет.
Также используется для указания верхней границы параметра типа в Generics.
final
Определите сущность один раз, которую нельзя изменить или получить из нее потом. Более конкретно: конечный класс не может быть подклассифицирован, конечный метод не может быть переопределен, а конечная переменная может встречаться не более одного раза как левостороннее выражение в выполняемой команде. Все методы в конечном классе неявно final.
finally
Используется для определения блока операторов для блока, определенного ранее ключевым tryсловом. finallyБлок выполняется после того, как выполнение выходит из tryблока и любых связанных catchпредложений, независимо от того, было ли выброшено или перехвачено исключение, или выполнение оставило метод в середине блоков tryили catchс использованием returnключевого слова.
float
Ключевое floatслово используется для объявления переменной, которая может содержать 32-битное число с плавающей точкой одинарной точности IEEE 754. [5] [6] Это ключевое слово также используется для объявления того, что метод возвращает значение примитивного типа float. [7] [8]
for
Ключевое forслово используется для создания цикла for , который определяет инициализацию переменной, логическое выражение и приращение. Сначала выполняется инициализация переменной, а затем вычисляется логическое выражение. Если выражение вычисляется как true, выполняется блок операторов, связанных с циклом, а затем выполняется приращение. Затем логическое выражение вычисляется снова; это продолжается до тех пор, пока выражение не вычислится как false. [15]
Начиная с J2SE 5.0 , forключевое слово также может использоваться для создания так называемого « расширенного цикла for », [16] который определяет массив или Iterableобъект; каждая итерация цикла выполняет связанный блок операторов, используя другой элемент в массиве или Iterable. [15]
if
Ключевое ifслово используется для создания оператора if , который проверяет логическое выражение ; если выражение оценивается как true, выполняется блок операторов, связанный с оператором if. Это ключевое слово также может использоваться для создания оператора if-else ; см else. . [13] [14]
implements
Включается в объявление класса для указания одного или нескольких интерфейсов , которые реализуются текущим классом. Класс наследует типы и абстрактные методы, объявленные интерфейсами.
import
Используется в начале исходного файла для указания классов или целых пакетов Java , на которые следует ссылаться позже без включения имен их пакетов в ссылку. Начиная с J2SE 5.0, importоператоры могут импортировать staticчлены класса.
instanceof
Бинарный оператор , который берет ссылку на объект в качестве первого операнда и класс или интерфейс в качестве второго операнда и выдает логический результат. instanceofОператор оценивается как истинный, если и только если тип времени выполнения объекта совместим по назначению с классом или интерфейсом.
int
Ключевое intслово используется для объявления переменной, которая может содержать 32-битное целое число со знаком в формате дополнения до двух. [5] [6] Это ключевое слово также используется для объявления того, что метод возвращает значение примитивного типа int. [7] [8]
interface
Используется для объявления специального типа класса, который содержит только абстрактные или стандартные методы, константные ( static final) поля и staticинтерфейсы. Позже он может быть реализован классами, которые объявляют интерфейс с implementsключевым словом. Поскольку множественное наследование не допускается в Java, интерфейсы используются для его обхода. Интерфейс может быть определен внутри другого интерфейса.
long
Ключевое longслово используется для объявления переменной, которая может содержать 64-битное целое число со знаком в формате дополнения до двух. [5] [6] Это ключевое слово также используется для объявления того, что метод возвращает значение примитивного типа long. [7] [8]
native
Используется в объявлениях методов для указания того, что метод реализован не в том же исходном файле Java, а на другом языке. [8]
new
Используется для создания экземпляра класса или объекта массива. Использование ключевого слова для этой цели не является полностью необходимым (как показано на примере Scala ), хотя оно служит двум целям: оно обеспечивает существование различных пространств имен для методов и имен классов, оно статически и локально определяет, что новый объект действительно создан, и к какому типу среды выполнения он относится (возможно, вводя зависимость в код).
package
Пакет Java — это группа схожих классов и интерфейсов. Пакеты объявляются с packageключевым словом.
private
Ключевое privateслово используется в объявлении метода, поля или внутреннего класса; к закрытым членам могут получить доступ только другие члены их собственного класса. [17]
protected
Ключевое protectedслово используется в объявлении метода, поля или внутреннего класса; защищенные члены могут быть доступны только членам их собственного класса, подклассам этого класса или классам из того же пакета . [17]
public
Ключевое publicслово используется в объявлении класса, метода или поля; к открытым классам, методам и полям могут обращаться члены любого класса. [17]
return
Используется для завершения выполнения метода. За ним может следовать значение, требуемое определением метода, которое возвращается вызывающей стороне.
short
Ключевое shortслово используется для объявления поля, которое может содержать 16-битное целое число со знаком в формате дополнения до двух. [5] [6] Это ключевое слово также используется для объявления того, что метод возвращает значение примитивного типа short. [7] [8]
static
Используется для объявления поля, метода или внутреннего класса как поля класса. Классы поддерживают одну копию полей класса независимо от того, сколько экземпляров существует этого класса. staticтакже используется для определения метода как метода класса. Методы класса привязаны к классу, а не к конкретному экземпляру, и могут работать только с полями класса. Классы и интерфейсы, объявленные как staticчлены другого класса или интерфейса, являются поведенчески классами верхнего уровня. [18]
super
Наследование в основном используется для достижения динамического связывания или полиморфизма времени выполнения в Java. Используется для доступа к членам класса, унаследованного классом, в котором он появляется. Позволяет подклассу получать доступ к переопределенным методам и скрытым членам его суперкласса. superКлючевое слово также используется для переадресации вызова из конструктора в конструктор в суперклассе.
Также используется для указания нижней границы параметра типа в Generics.
switch
Ключевое switchслово используется в сочетании с caseи defaultдля создания оператора switch , который оценивает переменную, сопоставляет ее значение с определенным caseи выполняет блок операторов, связанных с этим case. Если нет caseсоответствует значению, defaultвыполняется необязательный блок, помеченный как , если он включен. [9] [10]
synchronized
Используется в объявлении метода или блока кода для получения блокировки мьютекса для объекта, пока текущий поток выполняет код. [8] Для статических методов заблокированным объектом является класс Class. Гарантирует, что не более одного потока в один момент времени, работающего с одним и тем же объектом, выполняет этот код. Блокировка мьютекса автоматически снимается, когда выполнение выходит из синхронизированного кода. Поля, классы и интерфейсы не могут быть объявлены как синхронизированные .
this
Используется для представления экземпляра класса, в котором он появляется. thisможет использоваться для доступа к членам класса и как ссылка на текущий экземпляр. thisКлючевое слово также используется для переадресации вызова из одного конструктора в классе другому конструктору в том же классе.
throw
Вызывает выброс объявленного экземпляра исключения. Это заставляет выполнение продолжиться с первым включающим обработчиком исключений, объявленным ключевым словом catchдля обработки типа исключения, совместимого с присваиванием. Если в текущем методе такой обработчик исключений не найден, то метод возвращает управление, и процесс повторяется в вызывающем методе. Если обработчик исключений не найден ни в одном вызове метода в стеке, то исключение передается в неперехваченный обработчик исключений потока.
throws
Используется в объявлениях методов для указания того, какие исключения не обрабатываются внутри метода, а передаются на следующий более высокий уровень программы. Все неперехваченные исключения в методе, которые не являются экземплярами, RuntimeExceptionдолжны быть объявлены с использованием throwsключевого слова.
transient
Объявляет, что поле экземпляра не является частью сериализованной формы объекта по умолчанию. Когда объект сериализуется, в серийное представление по умолчанию включаются только значения его непереходных полей экземпляра. Когда объект десериализуется, переходные поля инициализируются только их значениями по умолчанию. Если форма по умолчанию не используется, например, когда в иерархии классов объявлена ​​таблица serialPersistentFieldstransient , все ключевые слова игнорируются. [19] [20]
try
Определяет блок операторов, которые имеют обработку исключений. Если исключение выбрасывается внутри tryблока, необязательный catchблок может обрабатывать объявленные типы исключений. Также finallyможет быть объявлен необязательный блок, который будет выполнен, когда выполнение выйдет из tryблока и catchпредложений, независимо от того, выброшено исключение или нет. tryБлок должен иметь по крайней мере одно catchпредложение или finallyблок.
void
Ключевое voidслово используется для объявления того, что метод не возвращает никакого значения. [7]
volatile
Используется в объявлениях полей для гарантии видимости изменений переменных между потоками. Каждое чтение изменчивой переменной будет считываться из основной памяти, а не из кэша ЦП, и каждая запись в изменчивую переменную будет записываться в основную память, а не только в кэш ЦП. [21] Таким образом, методы, классы и интерфейсы не могут быть объявлены как изменчивые , как и локальные переменные или параметры.
while
Ключевое whileслово используется для создания цикла while , который проверяет логическое выражение и выполняет блок операторов, связанных с циклом, если выражение оценивается как true; это продолжается до тех пор, пока выражение не оценивается как false. Это ключевое слово также может использоваться для создания цикла do-while ; см do. . [11] [12]

Зарезервированные идентификаторы

Следующие идентификаторы являются контекстными ключевыми словами и ограничены только в некоторых контекстах:

exports

module

non-sealed
Используется для объявления того, что класс или интерфейс, расширяющий запечатанный класс, может быть расширен неизвестными классами. [22]
open
opens
permits
В пункте разрешений указаны классы, которым разрешено расширять запечатанный класс. [22]
provides
record

requires

sealed
Запечатанный класс или интерфейс может быть расширен или реализован только классами и интерфейсами, которым это разрешено. [22]
to
transitive
uses
var
Специальный идентификатор, который не может быть использован в качестве имени типа (начиная с Java 10). [23]
when
используется как дополнительная проверка утверждения case. [24]
with
yield
Используется для установки значения выражения-переключателя при использовании помеченных групп операторов (например, case L:). [25]

Зарезервированные слова для буквальных значений

true
Логическое литеральное значение.
false
Логическое литеральное значение.
null
Ссылочное литеральное значение.

Неиспользованный

const
Хотя это ключевое слово зарезервировано в Java, constоно не используется и не имеет функции. [2] [26] Для определения констант в Java см. finalключевое слово.
goto
Хотя это зарезервированное ключевое слово в Java, gotoоно не используется и не имеет никакой функции. [2] [26]
strictfp(добавлено в J2SE 1.2 ) [4]
Хотя это ключевое слово зарезервировано в Java, strictfpоно устарело и больше не имеет никакой функции. [27] Ранее это ключевое слово использовалось для ограничения точности и округления вычислений с плавающей точкой для обеспечения переносимости. [8]

Смотрите также

Ссылки

  1. ^ «Платформа Java, стандартное издание. Справочник по API Java».
  2. ^ abc "Спецификация языка Java - Раздел 3.9: Ключевые слова". Спецификация языка Java . Oracle . 2018-08-21 . Получено 2018-12-25 .
  3. ^ "Обработка подчеркиваний". JEP 302: Остатки лямбда .
  4. ^ abc "Ключевые слова языка Java". Учебники Java . Sun Microsystems, Inc. Получено 24.07.2017 .
  5. ^ abcdef "Примитивные типы данных". Учебники Java . Sun Microsystems, Inc. 14 февраля 2008 г. Получено 2008-12-03 .
  6. ^ abcdef Фланаган 2005, стр. 22.
  7. ^ abcdefg "Возвращение значения из метода". Учебники Java . Sun Microsystems, Inc. 14 февраля 2008 г. Получено 2008-12-03 .
  8. ^ abcdefghi Flanagan 2005, стр. 66–67.
  9. ^ abc "The switch Statement". Учебники Java . Sun Microsystems, Inc. 14 февраля 2008 г. Получено 18 декабря 2014 г.
  10. ^ abc Фланаган 2005, стр. 46–48.
  11. ^ ab "Операторы while и do-while". Учебники Java . Sun Microsystems, Inc. 14 февраля 2008 г. Получено 2008-12-03 .
  12. ^ ab Flanagan 2005, стр. 48–49.
  13. ^ ab "Операторы if-then и if-then-else". Учебники Java . Sun Microsystems, Inc. 14 февраля 2008 г. Получено 2008-12-03 .
  14. ^ ab Flanagan 2005, стр. 44–46.
  15. ^ ab "The for Statement". Учебники Java . Sun Microsystems, Inc. 14 февраля 2008 г. Получено 2008-12-03 .
  16. Фланаган 2005, стр. 50–54.
  17. ^ abc "Управление доступом к членам класса". Учебники Java . Sun Microsystems, Inc. 14 февраля 2008 г. Получено 2008-12-03 .
  18. ^ «Вложенные классы (Учебники Java™ > Изучение языка Java > Классы и объекты)».
  19. ^ "Спецификация сериализации объектов Java версии 1.5.0". Sun/Oracle. 2004. 1.5 Определение сериализуемых полей для класса . Получено 16.09.2010 .[ постоянная мертвая ссылка ]
  20. ^ Гроссо, Уильям (21 ноября 2001 г.). "Java RMI: Сериализация". ONJava . O'Reilly Media. Объявление serialPersistentFields . Получено 16 сентября 2010 г.
  21. ^ «Java Volatile Keyword».
  22. ^ abc "Sealed Classes". docs.oracle.com . Oracle Corporation . Получено 2021-08-07 .
  23. ^ "Глава 3. Лексическая структура". docs.oracle.com . Получено 25.12.2018 .
  24. ^ «Глава 14. Блоки, операторы и шаблоны».
  25. ^ "Switch Expressions". docs.oracle.com . Oracle Corporation . Получено 2020-12-27 .
  26. ^ ab Flanagan 2005, стр. 20.
  27. ^ «JEP 306: Восстановление всегда строгой семантики чисел с плавающей точкой».

Внешние ссылки