JavaRush/Курсы/Java Syntax Pro/Зарезервированные слова в Java

Зарезервированные слова в Java

Открыта

1. Список слов

В языке Java, как и в любом языке программирования, есть слова, которые имеют особый смысл. Например, return или if или while. Такие слова называются ключевыми (keywords) и считаются зарезервированными языком Java.

Вы не можете использовать эти слова в качестве имени переменной, имени метода или класса. Компилятор всегда будет интерпретировать их строго определенным образом. Всего в Java таких слов 54.

abstract
assert
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
enum
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while
var
true
null
false

Некоторые из них вы уже знаете, а об остальных мы сейчас поговорим.


2. Примитивные типы

Как вы уже, скорее всего, запомнили, в Java есть 8 примитивных типов, и каждому из них соответствует свое ключевое слово:

  • byte
  • short
  • int
  • long
  • char
  • float
  • double
  • boolean
  • void

Если вы достаточно любознательны, скорее всего, уже пробовали назвать переменную именем int. И конечно же, это у вас не получилось. Именно по причине того, что все имена примитивных типов являются зарезервированными словами.

Также в эту категорию можно отнести тип void.


3. Циклы и ветвления

Циклы и ветвления тоже дают нам немаленький список ключевых слов:

  • if
  • else
  • switch
  • case
  • default
  • while
  • do
  • for
  • break
  • continue

Всего 10 слов достаточно, чтобы в языке появились циклы нескольких видов, ветвления, операторы управления прерыванием цикла (break и continue) и множественные ветвления (switch). Со всеми этими ключевыми словами вы уже знакомы.


4. Исключения

Исключения дают нам 5 ключевых слов:

  • try
  • catch
  • finally
  • throw
  • throws

Это блок try-catch-finally. Оператор для выбрасывания исключений — throw, и ключевое слово throws для поддержки механизма checked-исключений.

Хорошая новость: вы уже знакомы со всеми ключевыми словами в исключениях, поэтому большую часть работы с исключениями вы уже знаете.


5. Области видимости

Всего три ключевых слова, но вы уже с ними знакомы

  • private
  • protected
  • public

public разрешает доступ к методу/переменной/классу из любого места программы.

private запрещает доступ к методу/переменной/классу из любого места программы. Доступ разрешен только внутри того же класса, что и метод, помеченный модификатором private.

protected работает так же, как и private, но еще разрешает обращаться к методу/переменной/классу из классов-наследников. Преимущества этого модификатора станут вам более понятны, когда вы хорошо разберетесь с ООП и наследованием.


6. Работа с классами

В эту категорию входит 11 ключевых слов:

  • class
  • interface
  • enum
  • import
  • package
  • extends
  • implements
  • static
  • final
  • abstract
  • default

Их можно разделить на 4 группы.

Первая группа — создание классов: class, interface и enum. С объявлением class’а и enum’а вы уже познакомились. Ключевое слово interface используется для объявления еще одной «разновидности классов» – интерфейсов.

Вторая группа — это уже известные вам ключевые слова package и import. Package используется для того, чтобы описать пакет класса внутри файла класса. А import — чтобы в нашем классе мы могли использовать короткие имена чужих классов.

Ключевые слова extends и implements используются для описания наследования. Их вы рассмотрите в самом начале квеста Java Core.

И наконец, последняя группа — это модификаторы static, final, default и abstract. Про static и final вы уже немного знаете, а ключевое слово abstract используется для того, чтобы сделать класс или метод абстрактным. Детальнее — при изучении наследования в квесте Java Core.


7. Работа с объектами и переменными

Еще 6 ключевых слов используются для работы с объектами, методами и переменными.

  • new
  • instanceof
  • this
  • super
  • return
  • var (начиная с Java 10)

Оператор new используется, чтобы создавать новые объекты — это вы уже знаете.

Оператор instanceof используется, чтобы проверить, что определенная переменная содержит ссылку на объект определенного типа. С ним вы уже тоже знакомы.

Ключевое слово this используется, чтобы решать проблемы с затенением переменных и методов класса. Вы это тоже изучали.

Ключевое слово super — это аналог this, только при обращении к методам и переменным класса-родителя. Класс родитель еще называют суперклассом.

Оператор return используется, чтобы вернуть значение функции, и попутно эту самую функцию завершить.

И наконец, var — это объявление переменной с автовыведением типа. Вы тоже с этим уже знакомы.


8. Многопоточность

Многопоточность на уровне синтаксиса языка Java представлена всего двумя словами.

  • synchronized
  • volatile

Мы их даже разбирать не будем. Вот доберетесь до квеста Java Multithreading — тогда и начнем.


9. Разное

Так же есть еще 4 уникальных ключевых слова:

  • native
  • transient
  • assert
  • strictfp

native — это модификатор, который пишется перед объявлением метода. Он означает, что код метода написан не на Java, а на С++ и встроен в Java-машину (ну или подключаемую DLL-библиотеку). Сама Java-машина, как вы уже, наверное, догадываетесь, тоже написана на C++. Как и многие методы стандартных библиотек.

transient — это модификатор, который пишется перед переменными класса (полями класса). Он просит Java-машину пропустить (игнорировать) переменную при сохранении объекта класса — сериализации. Больше о сериализации вы узнаете в квесте Java Collections.

assert — тоже пришел в наследство от C++. С его помощью в код можно добавить дополнительные проверки (на то, что переменная не равна null, например). Штука в том, что он включается или выключается на этапе компиляции.

Можно собрать проект для внутреннего тестирования, где эти проверки будут осуществляться (включены). А можно их и выключить при компиляции: когда компилируете версию программы, которая будет поставляться пользователям.

Ну а про модификатор strictfp и дополнительную точность процессоров Intel мы даже целую историю рассказывали.


10. Зарезервированы, но не используются

Еще есть два ключевых слова, которые зарезервированы, но не используются.

  • const
  • goto

Это тоже наследие языка C++, где они есть и используются.


11. Не ключевые слова

Константы true, false и null формально не относятся к ключевым словам. Однако, обладают всеми их особенностями. Вы не можете назвать метод true или переменную false. Компилятор такой код не поймет и компилировать его не будет.

Комментарии (135)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Rei
Уровень 19
30 января, 13:56
Также в эту категорию можно отнести тип void.
Странно отнести void к категории примитивных типов - вносит путаницу. ИМХО лучше для ясности перефразировать и разграничить корректно Примитивные типы + ключевое слово void (так как это ключевое слово для "отсутствия значения" (возврата) и не имеет отношения к примитивам).
Anonymous #3585174
Уровень 33
9 июля 2025, 07:57
like
Blake555
Уровень 39
29 мая 2025, 22:48
protected работает так же, как и private, но еще разрешает обращаться к методу/переменной/классу из классов-наследников. Преимущества этого модификатора станут вам более понятны, когда вы хорошо разберетесь с ООП и наследованием. Э-э-э.... наверное, не как private, а как package-private (то есть модификатор по умолчанию)?
I'll kick them allSenior Task Kicker в JavaTrush
27 июля 2025, 01:43
Стоит отметить, что таким образом к protected-полю/методу можно обращаться из любого другого класса внутри пакета. Protected шире package-private а не private.
4 апреля 2025, 09:09
Собеседующий: джава раш? Претендент: 15 уровень Собеседующий: Перечислите все ключевые слова джава в алфавитном порядке Претендент: *встает и уходит*
Riga Android Developer
2 апреля 2025, 10:21
буквально в прошлой лекции переменную вместо cause назвал case, и думал что не так с ней) и тут сразу же эта лекция)
ShadyLine
Уровень 38
20 марта 2025, 13:15
Полезная лекция, повышает взгляд на Java
10 февраля 2025, 07:20
Полезная памятка
RustamJava Developer в t.me/jroom_chatStudent
4 октября 2024, 19:06
Легкая лекция, чтобы маленько разгрузить мозг и повторить изученное 👍
Serge Menko Java Developer
28 августа 2024, 04:38
Интересная статья 😀
TeaCaptain
Уровень 23
26 августа 2024, 12:08
Эх а вот бы goto...
Nazadain
Уровень 39
22 октября 2024, 02:35
Наоборот хорошо, что нет goto, иначе некоторые бы им явно злоупотребляли и код было бы невозможно прочесть.