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

В Java все ключевые слова являются зарезервированными словами, но некоторые зарезервированные слова не являются ключевыми словами — они «зарезервированы для использования в будущем». Всего имеется 51 ключевое слово, из которых 49 используются, а 2 зарезервированы для будущего использования.

В этой статье мы обсудим некоторые редко используемые ключевые слова в Java. Полный список ключевых слов можно найти здесь. Ключевые слова Java можно условно разделить на следующие категории: Примитивные типы и void, Модификаторы, Объявления, Поток управления, Разное. Обратите внимание, что в этой статье мы также рассмотрим зарезервированные ключевые слова для Java 8. Давайте рассмотрим некоторые из этих ключевых слов:

abstract:ключевое слово abstract используется для реализации абстракции в Java. Абстрактный класс – это объявленный abstract класс, который может включать или не включать абстрактные методы. Абстрактные классы не могут быть созданы, но могут быть подклассами.

Абстрактный метод – это метод, объявленный без реализации (без фигурных скобок и с точкой с запятой).

// abstract class example
public abstract class Person {
 // declare fields
 // declare nonabstract methods
 abstract void details(); // abstract method example
}

Несколько замечаний:

  1. Когда абстрактный класс является подклассом, подкласс должен предоставлять реализации для всех абстрактных методов в своем родительском классе. Однако, если это не так, то подкласс также должен быть объявлен abstract.
  2. В случае interface все объявленные методы являются неявно абстрактными, если они не объявлены по умолчанию или статическими.
  3. Абстрактный класс может иметь static полей и static методов.
  4. Абстрактный класс может реализовать интерфейс без реализации всех методов интерфейса.
  5. Примером абстрактного класса в JDK является AbstractMap, который является частью Collections Framework. Подклассы для этого класса: HashMap, TreeMap and ConcurrentHashMap .

instanceof:instanceof — это бинарный оператор, используемый для проверки принадлежности объекта к заданному типу. Результатом операции является либо true, либо false. Перед приведением неизвестного объекта всегда следует использовать проверку instanceof. Синтаксис: (object) instanceof (type) . Оператор instanceof работает по принципу отношения is-a. is-a relationship работает либо для наследования классов, либо для реализации интерфейса.

Использование:

public interface Shape {}
public class Round {}
public class Circle extends Round implements Shape {}
// Instance of class Circle
Circle circle = new Circle();
Assert.assertTrue(circle instanceof Circle); // True
Assert.assertTrue(circle instanceof Round); // True
Assert.assertTrue(circle instanceof Shape); // True

Несколько замечаний:

  1. Поскольку каждый класс неявно наследуется от класса Object. Оператор instanceof с типом Object всегда будет оценивать true.
  2. При использовании instanceof проверка null не требуется в явном виде. object со значениями null всегда будет возвращать false.
  3. При переопределении метода equals в Java рекомендуется не использовать проверку instanceof, если только класс не является неизменяемым, т. е. не может иметь подклассов, поскольку проверка instanceof возвращает true даже для дочернего класса. Вместо instanceofмы можем использовать getClass()метод для идентификации типа.

module: ключевое словоmodule было введено в Java из Java 9. Модуль Java — это механизм для упаковки вашего приложения Java и пакетов Java в модули Java. Он состоит из одного или нескольких пакетов Java, которые связаны друг с другом. Модуль может иметь полное приложение Java или API платформы Java или сторонний API.

Основные преимущества модулей заключаются в том, что он позволяет разделить API на отдельные модули, что уменьшает площадь распределенного приложения. Это также помогает в инкапсуляции внутренних пакетов, а также позволяет обнаруживать отсутствующие модули при запуске. Подробнее о модулях читайте в этой статье Якоба Дженкова.

Я надеюсь, что эта статья была информативной. В следующей части статьи мы рассмотрим другие ключевые слова: родной, статический, strictfp, синхронизированный, переходный, _ (подчеркивание), изменчивый.

Использованная литература: