На какие основные группы делятся базовые классы в иерархии Java?

«На какие основные группы делятся базовые классы в иерархии Java?» — вопрос из категории ООП, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java базовые классы можно разделить на три ключевые группы, которые составляют основу стандартной библиотеки:

  1. Класс Object — корневой суперкласс для всех классов Java. Все классы неявно наследуются от Object. Он предоставляет фундаментальные методы:

    public boolean equals(Object obj)
    public int hashCode()
    public String toString()
    protected Object clone() throws CloneNotSupportedException
  2. Классы-обертки (Wrapper Classes) — предоставляют объектное представление для примитивных типов (Integer, Double, Boolean и т.д.). Позволяют использовать примитивы в коллекциях и других контекстах, требующих объектов.

  3. Служебные классы (Utility Classes) — предоставляют статические методы для работы с:

    • Строками: String, StringBuilder, StringBuffer.
    • Коллекциями и массивами: Collections, Arrays.
    • Датами и временем: LocalDate, LocalDateTime (современный API), Date (устаревший).
    • Вводом/выводом: InputStream, OutputStream, Files.

Эти группы формируют базовый каркас, на котором строится вся остальная функциональность Java.