Лексика Java: пробелы, идентификаторы и комментарии
В сегодняшнем нашем уроке мы начнём рассматривать лексику языка Java и узнаем из чего состоит программа на Java.
1. Пробелы
Давайте начнём с рассмотрения пробелов.
Java - это язык свободной формы. Это означает, что при написании программы не нужно следовать каким-то специальным правилам в отношении пробелов.
В языке Java пробелами считаются не только символы пробела, но и табуляции, а также новой строки. Можно поставить два или три пробела, несколько пробелов, табуляцию, несколько переводов строки. И это всё будет работать, и это всё будет компилироваться. Единственное обязательное требование - это наличие по меньшей мере одного пробела между всеми лексемами, которые ещё не разграничены оператором или разделителем.
2. Идентификаторы
Переходим к идентификаторам. Что такое идентификатор? Идентификаторы служат для именования классов, методов или переменных. Например, в следующей программе MyFirstApp - это идентификатор, имя класса. Имя метода main - это идентификатор, args - это тоже идентификатор:
public class MyFirstApp {
public static void main(String[] args) {
System.out.println("Hello world!!!");
}
} Существуют специальные правила по выбору корректных идентификаторов, рассмотрим их:
- Идентификатор может состоять из любой комбинации строчных и прописных букв, цифр, символов подчеркивания (_) и знака доллара ($).
- Однако идентификаторы НЕ могут начинаться с цифры.
- В Java учитывается регистр символов.
- Допустимые идентификаторы:
MinTemp,sum,x4,$test,my_number. - Недопустимые идентификаторы:
3min,min-temp,yes/no. - Нельзя использовать ключевые слова в качестве идентификаторов.
3. Ключевые и зарезервированные слова
Что такое ключевые слова? Это слова, за которыми язык закрепил специальное значение. Вместе с синтаксисом операторов и разделителей они образуют основу языка Java. Все ключевые слова записываются строчными буквами, и ни одно из них нельзя использовать как идентификатор — иначе будет ошибка компиляции.
Ключевые слова удобно разделить на три группы: собственно ключевые слова, зарезервированные литералы и контекстные ключевые слова. Разберём каждую.
Ключевые слова
Это зарезервированные слова языка. Их нельзя использовать в качестве идентификаторов:
- 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 (с Java 17 его семантика упразднена)
- super
- switch
- synchronized
- this
- throw
- throws
- transient
- try
- void
- volatile
- while
Учить их наизусть не нужно — в процессе курса вы познакомитесь с каждым. Обратите внимание на два слова: const и goto зарезервированы, но в языке не используются — они оставлены, чтобы компилятор мог выдавать понятную ошибку, если их случайно применить.
Зарезервированные литералы
Это специальные значения. Формально они не относятся к ключевым словам, но так же зарезервированы и не могут быть идентификаторами:
- true
- false
- null
Контекстные ключевые слова
Контекстные ключевые слова имеют специальное значение только в определённом контексте (например, при объявлении модуля или запечатанного класса), а в остальных местах формально могут быть идентификаторами. Компилятор не выдаст ошибку, если назвать так переменную, но делать этого не рекомендуется — код станет запутанным.
- var
- yield
- record
- sealed
- permits
- non-sealed
- when
- module
- open
- opens
- requires
- exports
- transitive
- uses
- provides
- with
- to
Первая группа (var, yield, record, sealed, permits, non-sealed, when) относится к синтаксису классов и выражений, вторая (module, requires, exports и остальные) — к модульной системе, появившейся в Java 9.
4. Комментарии
Комментарии - это часть кода, которая игнорируется компилятором и не влияет на выполнение программы. Комментарии используются для добавления пояснений и описаний кода, чтобы сделать его более понятным для других разработчиков или для самого себя в будущем. Они помогают также документировать функциональность, логику и важные моменты кода.
Существует три вида комментариев: однострочные, многострочные и документирующие.
Однострочные комментарии
В IntelliJ IDEA закомментированный код выделяется серым цветом:
// int avgTemp = 1; Многострочные комментарии
Вы можете закомментировать сразу несколько строк, какой-то кусок кода. В начале вы ставите /* и в конце также */.
Для создания многострочного комментария, в IntelliJ IDEA существуют специальные Hot Keys. Вы выделяете нужный кусок кода, нажимаете Ctrl+Shift+/ и ваш кусок кода закомментируется.
Точно также, чтобы его раскомментировать, вы его выделяете и нажимаете опять же Ctrl+Shift+/.
/* public static long roundTime(long time) {
return time / THOUSAND * THOUSAND;
}*/ Документирующие комментарии
Документирующий комментарий обычно, пишется для класса или для метода. Документирующие комментарии можно впоследствии преобразовать в документацию.
Для того чтобы написать документирующий комментарий, нажмите /* Enter.
/**
* Created by Tatyana on 07.04.2026.
*/ И ещё немножко по поводу комментариев. Считается плохим тоном оставлять в коде однострочные и многострочные комментарии. Если вы закомментировали код, это значит, что он не нужен и скорее всего и в будущем не пригодится. Поэтому просто удаляйте его. Конечно же, когда вы будете работать на проектах, я думаю, вы увидите много и однострочных и многострочных комментариев.
5. Разделители
В языке Java в качестве разделителей используются следующие символы:
- Круглые скобки
( )используются для передачи параметров методам, приведения типов и операций в выражениях. - Фигурные скобки
{ }обозначают автоматически инициализируемые массивы, блоки кода, классы, методы и локальные области видимости. - Квадратные скобки
[ ]указывают размерность массивов и обращение к их элементам. - Точка с запятой
;завершает операторы. - Запятая
,разделяет идентификаторы переменных и создает цепочки операторов в циклах for. - Точка
.отделяет имена пакетов, подпакетов и классов, а также переменные и методы от ссылочных переменных.
Как вы видите они используются для указания параметров метода. Фигурные скобки. С помощью фигурных скобок, мы допустим можем задать тело класса, тело метода. И как мы позже увидим, ещё и тело блока. С помощью квадратных скобок мы можем определить массив. Но это мы рассмотрим чуть позже. Смотрите - точка запятой ставится в конце строчки. Обратите внимание, что в конце каждой строчки у нас скорее всего будет либо скобочка открывающаяся или закрывающаяся.
Часто задаваемые вопросы
Сколько пробелов можно ставить между лексемами в Java?
Сколько угодно. Java — язык свободной формы: между лексемами можно поставить один или несколько пробелов, табуляцию, переводы строки — код всё равно скомпилируется. Обязательное правило одно: между двумя лексемами, которые не разделены оператором или разделителем, должен быть хотя бы один пробел. Например, int x писать слитно нельзя, а a+b — можно, потому что их разделяет оператор.
Чем ключевое слово отличается от зарезервированного и контекстного?
Ключевые слова (например, class, if, int) навсегда закреплены за языком и никогда не могут быть идентификаторами. Зарезервированные литералы — это true, false и null: формально они не ключевые слова, но так же зарезервированы. Контекстные ключевые слова (например, var, record, sealed, module) имеют специальное значение только в определённом месте кода, а в остальных формально могут быть идентификаторами — но использовать их так не рекомендуется.
Можно ли назвать переменную var или record?
Технически да — это контекстные ключевые слова, и компилятор не выдаст ошибку, если так назвать переменную. Но делать этого не стоит: код станет запутанным, а читатель легко перепутает имя переменной со специальным синтаксисом. А вот настоящие ключевые слова вроде class или int использовать как имена нельзя — это ошибка компиляции.
Нужно ли оставлять в коде закомментированный код?
Как правило, нет. Если код закомментирован, значит он не нужен — и, скорее всего, не пригодится в будущем. Такой код лучше просто удалить: за историей изменений следит система контроля версий (Git), и при необходимости старую версию всегда можно восстановить. На реальных проектах закомментированные фрагменты встречаются часто, но это скорее недостаток, чем норма.
Презентацию с видео можно скачать на Patreon.
Видео объяснение
Предпочитаете видеоформат? Посмотрите этот урок с примерами и объяснениями.
Комментарии