Справочник Java
Справочник Java
Функции, классы и методы Java: синтаксис, параметры, возвращаемые значения и примеры.
Ключевые слова и операторы
- @DeprecatedПомечает устаревший класс, метод или поле. Компилятор предупреждает, когда их используют.
- @FunctionalInterfaceПомечает интерфейс с ровно одним абстрактным методом — его можно реализовать лямбдой.
- @OverrideПомечает метод, который переопределяет метод родителя или интерфейса. Компилятор проверяет, что это действительно так.
- @SuppressWarningsОтключает выбранные предупреждения компилятора для класса, метода или переменной.
- abstractПомечает класс, объект которого создать нельзя, и метод без тела, который реализуют наследники.
- public / protected / privateМодификаторы доступа задают, откуда виден класс, поле, метод или конструктор.
- assertПроверка внутреннего условия программы. По умолчанию выключена, включается ключом -ea.
- break / continuebreak прерывает цикл, continue переходит к следующему шагу; метка позволяет выйти из вложенного цикла.
- classОбъявляет класс — описание объектов: их полей и методов.
- enumОбъявляет перечисление — тип с фиксированным набором значений.
- extendsОбъявляет наследование: класс получает поля и методы родителя.
- finalЗапрещает менять переменную после присваивания, переопределять метод или наследовать класс.
- forЦикл со счётчиком или перебор всех элементов массива и коллекции (for-each).
- if / elseВыполняет блок кода, только если условие истинно.
- implementsУказывает интерфейсы, которые реализует класс.
- import / packagepackage задаёт пакет файла, import позволяет писать короткие имена классов из других пакетов.
- instanceofПроверяет, является ли объект экземпляром типа, и сразу даёт переменную этого типа.
- interfaceОбъявляет интерфейс — набор методов, которые обязуется реализовать класс.
- module / requires / exportsОписание модуля в файле module-info.java: какие модули ему нужны и какие пакеты он открывает другим.
- newСоздаёт новый объект или массив и вызывает конструктор.
- returnЗавершает метод и возвращает значение вызывающему коду.
- sealed / permitsОграничивает список классов, которым разрешено наследоваться от класса или реализовывать интерфейс.
- staticДелает поле или метод общим для всего класса, а не для отдельного объекта.
- superОбращается к родительскому классу: вызывает его конструктор или его версию метода.
- switchВыбирает ветку по значению; в форме выражения возвращает результат.
- thisСсылка на текущий объект — тот, у которого вызван метод или конструктор.
- throwБросает исключение и прерывает выполнение метода.
- throwsОбъявляет, какие проверяемые исключения может бросить метод.
- try / catch / finallyПерехватывает исключения; finally выполняется всегда, а try с ресурсами сам их закрывает.
- varОбъявляет локальную переменную, тип которой компилятор выводит из значения.
- while / do-whileПовторяет блок, пока условие истинно; do-while выполняет его хотя бы один раз.
- yieldВозвращает значение из блока внутри switch-выражения.
- & | ^ ~ << >> >>>Побитовые операторы: работают с отдельными битами целых чисел — И, ИЛИ, исключающее ИЛИ, НЕ и сдвиги.
- += -= *= /=Выполняет операцию и сразу записывает результат в ту же переменную.
- == vs equals()== сравнивает значения примитивов и ссылки объектов; содержимое объектов сравнивает equals().
- ++ / --Увеличивает или уменьшает переменную на единицу.
- && || !Логические И, ИЛИ и НЕ для значений boolean.
- %Возвращает остаток от деления.
- ? :Выбирает одно из двух значений по условию — короткая замена if-else.
Строки
- Character.isDigit()Проверяет, является ли символ цифрой. Рядом — isLetter(), isWhitespace(), isUpperCase().
- Text block """Многострочный строковый литерал в тройных кавычках.
- StringBuilderИзменяемая строка: удобна, когда текст собирается по частям, особенно в цикле.
- StringBuilder.append()Добавляет значение в конец StringBuilder.
- StringBuilder.deleteCharAt()Удаляет один символ по индексу. Для диапазона есть delete(start, end).
- StringBuilder.insert()Вставляет значение в указанную позицию StringBuilder.
- StringBuilder.reverse()Переворачивает содержимое StringBuilder задом наперёд.
- StringBuilder.toString()Возвращает содержимое StringBuilder как обычную строку String.
- String.charAt()Возвращает символ строки по индексу.
- String.chars()Возвращает поток кодов символов строки.
- String.codePoints()Возвращает поток кодов символов Unicode. В отличие от chars(), эмодзи считается одним символом.
- String.compareTo()Сравнивает две строки по алфавиту (лексикографически).
- String.contains()Проверяет, есть ли в строке подстрока.
- String.endsWith()Проверяет, заканчивается ли строка указанным суффиксом.
- String.equals()Сравнивает содержимое двух строк.
- String.equalsIgnoreCase()Сравнивает две строки без учёта регистра букв.
- String.format()Собирает строку по шаблону с подстановками вроде %s и %d.
- String.formatted()Подставляет значения в саму строку как в шаблон — короткая форма String.format().
- String.indent()Добавляет или убирает n пробелов в начале каждой строки текста.
- String.indexOf()Находит позицию первого вхождения символа или подстроки.
- String.isBlank()Проверяет, что строка пустая или состоит только из пробелов.
- String.isEmpty()Проверяет, что длина строки равна нулю.
- String.join()Склеивает строки через разделитель.
- String.lastIndexOf()Находит позицию последнего вхождения символа или подстроки.
- String.length()Возвращает количество символов в строке.
- String.lines()Разбивает строку на строки по переводам строки и возвращает их потоком.
- String.repeat()Повторяет строку указанное число раз.
- String.replace()Заменяет все вхождения подстроки или символа на другую строку.
- String.replaceAll()Заменяет все совпадения регулярного выражения.
- String.split()Разбивает строку на массив частей по разделителю.
- String.startsWith()Проверяет, начинается ли строка с указанного префикса.
- String.strip()Удаляет любые пробельные символы Unicode в начале и в конце строки.
- String.substring()Возвращает часть строки между двумя индексами.
- String.toCharArray()Копирует символы строки в новый массив char[].
- String.toLowerCase()Возвращает копию строки, где все буквы строчные.
- String.toUpperCase()Возвращает копию строки, где все буквы заглавные.
- String.trim()Удаляет пробелы и управляющие символы в начале и в конце строки.
- String.valueOf()Превращает значение любого типа в строку.
Числа и Math
- BigDecimalТочное десятичное число — для денег и расчётов, где недопустимы ошибки округления double.
- BigIntegerЦелое число любого размера — когда не хватает даже long.
- Double.parseDouble()Превращает строку с дробным числом в double.
- Integer.compare()Сравнивает два числа int: отрицательный результат — x меньше, 0 — равны, положительный — x больше.
- Integer.MAX_VALUEНаибольшее значение типа int; рядом — Integer.MIN_VALUE.
- Integer.parseInt()Превращает строку с целым числом в int.
- Integer.toBinaryString()Записывает число в двоичной системе. Рядом — toHexString() и toOctalString().
- Integer.valueOf()Возвращает объект-обёртку Integer для строки или числа int.
- Long.parseLong()Превращает строку с целым числом в long — для чисел, которые не помещаются в int.
- Math.abs()Возвращает модуль числа — значение без знака минус.
- Math.addExact()Складывает два числа и бросает ArithmeticException при переполнении. Рядом — multiplyExact(), toIntExact().
- Math.ceil()Округляет вверх — до ближайшего большего или равного целого.
- Math.clamp()Ограничивает число диапазоном: меньше min — вернёт min, больше max — вернёт max.
- Math.floor()Округляет вниз — до ближайшего меньшего или равного целого.
- Math.floorMod()Остаток от деления, который всегда имеет знак делителя.
- Math.max()Возвращает большее из двух чисел.
- Math.min()Возвращает меньшее из двух чисел.
- Math.pow()Возводит число в степень.
- Math.random()Возвращает случайное дробное число от 0 (включительно) до 1 (не включительно).
- Math.round()Округляет число до ближайшего целого.
- Math.sqrt()Возвращает квадратный корень числа.
- NumberFormatФорматирует числа, деньги и проценты по правилам выбранной страны.
- RandomГенератор случайных чисел: целые в диапазоне, дробные, boolean.
- ThreadLocalRandomГотовый генератор случайных чисел, который не нужно создавать; быстрый и в многопоточном коде.
Массивы (Arrays)
- array.lengthДлина массива — количество элементов. Поле, а не метод: пишется без скобок.
- Arrays.asList()Возвращает список фиксированного размера, который работает поверх массива.
- Arrays.binarySearch()Быстро ищет значение в отсортированном массиве делением пополам.
- Arrays.copyOf()Копирует массив в новый — той же или другой длины. Часть массива копирует copyOfRange().
- Arrays.equals()Сравнивает содержимое двух массивов поэлементно.
- Arrays.fill()Заполняет весь массив или его часть одним значением.
- Arrays.sort()Сортирует массив на месте — по возрастанию или по заданному компаратору.
- Arrays.stream()Создаёт поток (stream) из массива — для сумм, фильтров и преобразований.
- Arrays.toString()Возвращает содержимое массива в виде строки [1, 2, 3].
- System.arraycopy()Копирует часть одного массива в другой (или в тот же) массив.
Списки (List)
- ArrayListИзменяемый список на основе массива — самая частая реализация `List`.
- LinkedListДвусвязный список: реализует и `List`, и `Deque`.
- List.add()Добавляет элемент в конец списка или в указанную позицию.
- List.addAll()Добавляет в список все элементы другой коллекции.
- List.contains()Проверяет, есть ли элемент в списке.
- List.copyOf()Создаёт неизменяемую копию коллекции в виде списка.
- List.get()Возвращает элемент списка по индексу.
- List.getFirst()Возвращает первый или последний элемент упорядоченной коллекции.
- List.indexOf()Находит позицию элемента в списке.
- List.isEmpty()Проверяет, пуст ли список.
- List.of()Создаёт неизменяемый список из перечисленных элементов.
- List.remove()Удаляет элемент списка по индексу или по значению.
- List.replaceAll()Заменяет каждый элемент списка результатом функции.
- List.reversed()Возвращает список в обратном порядке, не копируя его.
- List.set()Заменяет элемент списка по индексу.
- List.size()Возвращает количество элементов в списке.
- List.sort()Сортирует список на месте по заданному правилу.
- List.subList()Возвращает часть списка между двумя индексами.
Множества (Set)
- EnumSetМножество значений одного enum. Работает как набор битовых флагов, но с понятным кодом.
- HashSetМножество без повторов на основе хеш-таблицы; порядок не гарантирован.
- LinkedHashSetМножество, которое помнит порядок добавления элементов.
- Set.add()Добавляет элемент, если его ещё нет в множестве.
- Set.addAll()Объединяет множество с другой коллекцией.
- Set.contains()Проверяет, есть ли элемент в множестве.
- Set.copyOf()Создаёт неизменяемое множество из коллекции, отбрасывая повторы.
- Set.of()Создаёт неизменяемое множество из перечисленных элементов.
- Set.remove()Удаляет элемент из множества.
- Set.removeAll()Удаляет из множества все элементы другой коллекции (разность).
- Set.retainAll()Оставляет в множестве только элементы, которые есть в другой коллекции (пересечение).
- TreeSetМножество, которое хранит элементы в отсортированном порядке.
Словари (Map)
- EnumMapСловарь, ключи которого — значения одного enum. Быстрый и хранит ключи в порядке объявления.
- HashMapСловарь на основе хеш-таблицы: быстрый поиск по ключу, порядок не гарантирован.
- LinkedHashMapСловарь, который помнит порядок добавления ключей.
- Map.compute()Вычисляет новое значение по ключу из старого (или из null, если ключа нет).
- Map.computeIfAbsent()Возвращает значение по ключу, создавая его функцией, если ключа нет.
- Map.computeIfPresent()Меняет значение по ключу, только если ключ уже есть в словаре.
- Map.containsKey()Проверяет, есть ли в словаре ключ.
- Map.EntryОдна пара «ключ — значение» словаря.
- Map.entrySet()Возвращает все пары «ключ — значение» для обхода.
- Map.forEach()Выполняет действие для каждой пары словаря.
- Map.get()Возвращает значение по ключу или `null`.
- Map.getOrDefault()Возвращает значение по ключу или запасное значение, если ключа нет.
- Map.keySet()Возвращает множество всех ключей словаря.
- Map.merge()Добавляет значение по ключу или объединяет его с уже существующим.
- Map.of()Создаёт неизменяемый словарь из пар «ключ — значение».
- Map.put()Записывает значение по ключу, заменяя прежнее.
- Map.putIfAbsent()Записывает значение, только если ключа ещё нет.
- Map.remove()Удаляет пару по ключу.
- Map.values()Возвращает коллекцию всех значений словаря.
- TreeMapСловарь, ключи которого всегда отсортированы.
Коллекции: общее
- ArrayDequeБыстрая двусторонняя очередь на массиве — замена `Stack` и `LinkedList`.
- Collection.removeIf()Удаляет из коллекции все элементы, подходящие под условие.
- Collection.toArray()Копирует элементы коллекции в массив.
- Collections.emptyList()Возвращает пустой неизменяемый список. Рядом — emptyMap() и emptySet().
- Collections.frequency()Считает, сколько раз элемент встречается в коллекции.
- Collections.max()Находит наибольший элемент коллекции.
- Collections.min()Находит наименьший элемент коллекции.
- Collections.nCopies()Возвращает неизменяемый список из n одинаковых элементов.
- Collections.reverse()Разворачивает порядок элементов списка на месте.
- Collections.shuffle()Перемешивает элементы списка в случайном порядке.
- Collections.sort()Сортирует список на месте.
- Collections.unmodifiableList()Возвращает представление списка, которое нельзя изменить.
- DequeДвусторонняя очередь: добавлять и забирать можно с обоих концов.
- Deque.pop()Снимает и возвращает элемент с вершины стека.
- Deque.push()Кладёт элемент на вершину стека (в начало двусторонней очереди).
- IterableИнтерфейс всего, что можно обойти циклом for-each.
- IteratorОбъект, который по одному выдаёт элементы коллекции.
- PriorityQueueОчередь, которая всегда выдаёт наименьший (или самый приоритетный) элемент.
- QueueОчередь: элементы добавляются в конец и забираются из начала.
- Queue.offer()Добавляет элемент в конец очереди.
- Queue.peek()Возвращает первый элемент очереди, не удаляя его.
- Queue.poll()Забирает и удаляет первый элемент очереди.
Stream API
- Collection.parallelStream()Возвращает параллельный поток: элементы обрабатываются сразу в нескольких потоках выполнения.
- Collection.stream()Создаёт поток (Stream) из элементов коллекции.
- Collectors.averagingDouble()Сборщик, который вычисляет среднее значение числового поля.
- Collectors.counting()Сборщик-счётчик; обычно используется внутри `groupingBy()`.
- Collectors.flatMapping()Разворачивает каждый элемент в поток и собирает все значения другим коллектором. Рядом — filtering().
- Collectors.groupingBy()Сборщик, который раскладывает элементы по группам с общим ключом.
- Collectors.joining()Сборщик, который склеивает строки потока в одну.
- Collectors.mapping()Преобразует элементы перед тем, как передать их другому коллектору. Чаще всего — внутри groupingBy.
- Collectors.partitioningBy()Делит элементы потока на две группы по условию.
- Collectors.summingInt()Сборщик, который суммирует числовое поле элементов.
- Collectors.teeing()Передаёт каждый элемент сразу в два коллектора и объединяет их результаты.
- Collectors.toList()Сборщик, который складывает элементы потока в список.
- Collectors.toMap()Сборщик, который строит словарь из элементов потока.
- Collectors.toSet()Сборщик, который складывает элементы потока в множество без повторов.
- IntStream.average()Вычисляет среднее арифметическое чисел потока.
- IntStream.boxed()Превращает поток примитивов int в поток объектов Integer.
- IntStream.range()Создаёт поток целых чисел из диапазона.
- IntStream.sum()Складывает все числа потока.
- Stream.allMatch()Проверяет, подходят ли под условие все элементы.
- Stream.anyMatch()Проверяет, подходит ли под условие хотя бы один элемент.
- Stream.collect()Собирает элементы потока в коллекцию, строку или другую структуру.
- Stream.count()Считает элементы потока.
- Stream.distinct()Убирает повторяющиеся элементы потока.
- Stream.dropWhile()Пропускает элементы, пока выполняется условие, и отдаёт всё остальное.
- Stream.filter()Оставляет в потоке только элементы, подходящие под условие.
- Stream.findFirst()Возвращает первый элемент потока в виде `Optional`.
- Stream.flatMap()Превращает каждый элемент в поток и склеивает все потоки в один.
- Stream.forEach()Выполняет действие для каждого элемента потока (завершающая операция).
- Stream.gather()Применяет к потоку собственную промежуточную операцию — например, разбиение на группы по N.
- Stream.generate()Создаёт бесконечный поток из значений функции-поставщика.
- Stream.iterate()Создаёт поток, где каждый элемент вычисляется из предыдущего.
- Stream.limit()Обрезает поток до первых N элементов.
- Stream.map()Преобразует каждый элемент потока.
- Stream.mapToInt()Превращает поток объектов в поток чисел `int`.
- Stream.max()Находит наибольший элемент потока.
- Stream.min()Находит наименьший элемент потока.
- Stream.noneMatch()Проверяет, что ни один элемент не подходит под условие.
- Stream.of()Создаёт поток из перечисленных значений.
- Stream.reduce()Сворачивает все элементы потока в одно значение.
- Stream.skip()Пропускает первые N элементов потока.
- Stream.sorted()Сортирует элементы потока.
- Stream.takeWhile()Берёт элементы, пока выполняется условие, и останавливается на первом неподходящем.
- Stream.toList()Собирает элементы потока в неизменяемый список.
Optional и функциональные интерфейсы
- BiFunctionФункция двух аргументов.
- BinaryOperatorФункция двух аргументов, где аргументы и результат одного типа.
- ConsumerДействие: принимает значение и ничего не возвращает.
- FunctionФункция, которая принимает значение типа `T` и возвращает значение типа `R`.
- -> (lambda)Лямбда-выражение — короткая запись функции, которую можно передать как значение.
- :: (method reference)Ссылка на метод — ещё более короткая замена лямбды, которая только вызывает метод.
- OptionalКонтейнер, в котором либо есть значение, либо его нет, — замена возврату `null`.
- Optional.empty()Возвращает пустой `Optional` — «значения нет».
- Optional.ifPresent()Выполняет действие, только если значение есть.
- Optional.isPresent()Проверяет, есть ли значение в `Optional`.
- Optional.map()Преобразует значение внутри `Optional`, если оно есть.
- Optional.of()Создаёт `Optional` с непустым значением.
- Optional.ofNullable()Оборачивает значение, которое может быть `null`, в `Optional`.
- Optional.orElse()Возвращает значение или запасной вариант, если значения нет.
- Optional.orElseGet()Возвращает значение или вызывает функцию, чтобы создать запасной вариант.
- Optional.orElseThrow()Возвращает значение или бросает исключение, если его нет.
- PredicateУсловие: функция, которая принимает значение и возвращает `boolean`.
- RunnableЗадача без аргументов и без результата.
- SupplierПоставщик: функция без аргументов, которая возвращает значение.
- UnaryOperatorФункция, у которой аргумент и результат одного типа.
Классы, Object и записи
- CloneableМаркерный интерфейс, который разрешает Object.clone(). В новом коде вместо него используют копирующие конструкторы.
- Comparable.compareTo()Задаёт естественный порядок объектов класса — по нему работают sort() и TreeSet.
- Comparator.comparing()Создаёт компаратор, который сравнивает объекты по одному полю.
- Comparator.reversed()Возвращает компаратор с обратным порядком. Для естественного порядка есть Comparator.reverseOrder().
- Comparator.thenComparing()Добавляет второй критерий сортировки — для объектов, равных по первому.
- Enum.values()Методы каждого enum: values() — все константы, valueOf() — константа по имени, ordinal() и name() — номер и имя.
- recordОбъявляет запись — неизменяемый класс для хранения данных с готовыми equals(), hashCode() и toString().
- Object.equals()Сравнивает объекты по смыслу. По умолчанию работает как ==, поэтому в своих классах его переопределяют.
- Object.getClass()Возвращает класс объекта во время выполнения.
- Object.hashCode()Возвращает хеш-код объекта — число, по которому HashMap и HashSet быстро находят объект.
- Object.toString()Возвращает текстовое представление объекта; вызывается при выводе и сложении со строкой.
- Objects.equals()Сравнивает два объекта через equals(), безопасно для null.
- Objects.hash()Вычисляет хеш-код из нескольких значений — для реализации hashCode().
- Objects.isNull()Проверяет значение на null; парный метод nonNull() — наоборот.
- Objects.requireNonNull()Проверяет, что значение не null, и сразу бросает NullPointerException с понятным сообщением.
- UUID.randomUUID()Создаёт случайный UUID — 128-битный идентификатор, который практически никогда не повторяется.
Исключения
- ArithmeticExceptionВозникает при недопустимой арифметической операции, например целочисленном делении на ноль.
- ArrayIndexOutOfBoundsExceptionВозникает при обращении к массиву по несуществующему индексу.
- AutoCloseableИнтерфейс ресурса, который можно закрыть в try-with-resources.
- ExceptionБазовый класс исключений, которые программа может перехватить и обработать.
- IllegalArgumentExceptionСообщает, что метод получил недопустимый аргумент.
- IllegalStateExceptionСообщает, что метод вызван в неподходящий момент — объект не в том состоянии.
- IndexOutOfBoundsExceptionВозникает при обращении к списку или строке по индексу вне допустимого диапазона.
- IOExceptionПроверяемое исключение для ошибок ввода-вывода: файлов, сети, потоков данных.
- NullPointerExceptionВозникает при обращении к методу или полю через ссылку, равную `null`.
- NumberFormatExceptionВозникает, когда строку нельзя превратить в число.
- RuntimeExceptionБазовый класс непроверяемых исключений — ошибок в логике программы.
- Throwable.getCause()Возвращает исходное исключение, которое было обёрнуто в текущее.
- Throwable.getMessage()Возвращает текст сообщения исключения.
- Throwable.printStackTrace()Печатает исключение и цепочку вызовов, которая к нему привела, в поток ошибок.
- try-with-resourcesБлок `try`, который сам закрывает открытые ресурсы — файлы, соединения, потоки.
- UncheckedIOExceptionНепроверяемая обёртка над `IOException` — нужна там, где проверяемые исключения запрещены, например в лямбдах.
- UnsupportedOperationExceptionВозникает при вызове операции, которую объект не поддерживает, — например, изменение неизменяемой коллекции.
Ввод-вывод и файлы
- BufferedReaderЧитает текст построчно с буферизацией — классический способ обработки больших файлов.
- Connection.setAutoCommit()Включает или выключает автофиксацию. С false несколько запросов объединяются в транзакцию: commit() или rollback().
- DriverManager.getConnection()Открывает соединение с базой данных по JDBC-адресу.
- Files.copy()Копирует файл. По умолчанию не перезаписывает существующий файл.
- Files.createDirectories()Создаёт папку вместе со всеми недостающими родительскими папками.
- Files.delete()Удаляет файл или пустую папку. Вариант deleteIfExists() не бросает исключение, если файла нет.
- Files.exists()Проверяет, существует ли файл или папка. Рядом — isDirectory(), isRegularFile(), size().
- Files.lines()Читает файл лениво — как поток строк, не загружая его в память целиком.
- Files.list()Возвращает поток файлов и папок внутри папки (без вложенных). Рекурсивно обходит Files.walk().
- Files.move()Перемещает или переименовывает файл или папку.
- Files.readAllLines()Читает текстовый файл в список строк.
- Files.readString()Читает весь текстовый файл в одну строку.
- Files.walk()Обходит папку и все вложенные папки и возвращает поток всех найденных путей.
- Files.writeString()Записывает строку в файл: создаёт его или перезаписывает.
- HttpClientВстроенный HTTP-клиент: отправляет запросы синхронно (send) или асинхронно (sendAsync).
- HttpRequestНеизменяемый HTTP-запрос: адрес, метод, заголовки и тело. Создаётся через newBuilder().
- HttpResponseОтвет сервера: код статуса, заголовки и тело того типа, который задал BodyHandler.
- IO.print()Выводит значение в консоль без перевода строки.
- IO.println()Выводит значение в консоль и переводит строку.
- IO.readln()Выводит подсказку и читает строку, которую ввёл пользователь.
- Path.of()Создаёт объект Path — путь к файлу или папке.
- PreparedStatementЗаранее подготовленный SQL-запрос с параметрами ?. Защищает от SQL-инъекций.
- ResultSetРезультат SELECT-запроса: курсор, который по одной перебирает строки таблицы.
- Runtime.getRuntime()Возвращает объект Runtime текущей JVM: память, число процессоров, обработчики завершения.
- ScannerЧитает ввод по частям: строки целиком (nextLine) или отдельные слова и числа.
- Scanner.nextInt()Читает следующее целое число из ввода. Рядом — nextDouble(), next() и hasNextInt().
- System.exit()Немедленно завершает программу с заданным кодом выхода.
- System.getProperty()Возвращает системное свойство JVM: версию Java, имя ОС или своё свойство, заданное через -D.
- System.getenv()Возвращает значение переменной окружения или null, если такой переменной нет.
- System.out.printf()Выводит строку по шаблону с подстановками %s, %d, %.2f.
- System.out.println()Классический способ вывода в консоль: печатает значение и переводит строку.
Дата и время (java.time)
- ChronoUnit.between()Считает количество целых единиц (дней, месяцев, часов) между двумя датами или моментами.
- DateTimeFormatter.ofPattern()Создаёт форматтер для вывода и разбора дат по шаблону вроде dd.MM.yyyy.
- DurationПромежуток времени в секундах и наносекундах — часы, минуты, секунды.
- InstantТочный момент времени на временной шкале UTC — для логов, меток времени и замеров.
- LocalDate.getDayOfWeek()Возвращает день недели даты.
- LocalDate.now()Возвращает сегодняшнюю дату по часам и часовому поясу компьютера.
- LocalDate.of()Создаёт дату из года, месяца и дня.
- LocalDate.parse()Разбирает дату из строки — в формате ISO (2025-03-14) или по шаблону.
- LocalDate.plusDays()Возвращает дату на указанное число дней позже. Рядом — minusDays(), plusWeeks(), plusMonths(), plusYears().
- LocalDateTimeДата и время без часового пояса — например, время встречи в календаре.
- LocalTimeВремя суток без даты — например, время открытия магазина.
- PeriodКалендарный промежуток в годах, месяцах и днях — например, возраст.
- System.nanoTime()Возвращает показания точного таймера в наносекундах — для замера длительности. Рядом — currentTimeMillis().
- ZonedDateTimeДата и время в конкретном часовом поясе — с учётом летнего времени.
Регулярные выражения
- Matcher.find()Ищет следующее совпадение шаблона в любом месте строки.
- Matcher.group()Возвращает текст найденного совпадения или его группы в скобках.
- Matcher.matches()Проверяет, соответствует ли шаблону вся строка целиком.
- Matcher.replaceAll()Заменяет все совпадения строкой или результатом функции, которая получает каждое совпадение.
- Matcher.results()Возвращает все совпадения сразу в виде потока — короткая замена цикла с find().
- Pattern.compile()Компилирует регулярное выражение в объект Pattern, который можно использовать много раз.
- Pattern.matcher()Создаёт объект Matcher, который ищет совпадения шаблона в конкретной строке.
- String.matches()Проверяет, соответствует ли вся строка регулярному выражению.
Многопоточность
- AtomicIntegerЦелое число, которое можно безопасно менять из нескольких потоков без блокировок.
- CompletableFuture.join()Ждёт результат `CompletableFuture`; ошибки приходят как непроверяемые исключения.
- CompletableFuture.supplyAsync()Запускает вычисление асинхронно и возвращает `CompletableFuture`.
- CompletableFuture.thenApply()Добавляет шаг, который преобразует результат, когда тот будет готов.
- CompletableFuture.thenCombine()Объединяет результаты двух независимых задач, когда готовы обе.
- ConcurrentHashMapПотокобезопасный словарь для одновременной работы из многих потоков.
- ConcurrentLinkedQueueПотокобезопасная очередь без блокировок.
- CountDownLatchСчётчик, который позволяет одному потоку дождаться, пока другие выполнят N действий.
- ExecutorServiceСервис, который выполняет задачи в пуле потоков.
- ExecutorService.close()Закрывает пул и ждёт завершения всех задач; вызывается автоматически в try-with-resources.
- ExecutorService.shutdown()Закрывает пул для новых задач и даёт уже принятым доработать.
- ExecutorService.submit()Отправляет задачу в пул и сразу возвращает `Future` для её результата.
- Executors.newFixedThreadPool()Создаёт пул из заданного числа потоков.
- Executors.newVirtualThreadPerTaskExecutor()Создаёт сервис, который запускает каждую задачу в отдельном виртуальном потоке.
- Future.get()Ждёт завершения задачи и возвращает её результат.
- InterruptedExceptionПроверяемое исключение: ожидающий поток попросили прерваться.
- synchronizedРазрешает выполнять блок кода только одному потоку за раз.
- volatileПомечает поле, изменения которого сразу видны всем потокам.
- ReentrantLockЯвная блокировка — гибкая замена `synchronized`.
- ScopedValueЗначение, доступное коду только на время вызова — например, текущий пользователь запроса. Замена ThreadLocal.
- ThreadПоток выполнения: позволяет программе делать несколько дел одновременно.
- Thread.currentThread()Возвращает поток, который выполняет текущий код.
- Thread.join()Ждёт, пока поток завершится.
- Thread.ofVirtual()Создаёт виртуальный поток — лёгкий поток, которых можно запустить миллионы.
- Thread.sleep()Приостанавливает текущий поток на заданное время.
- Thread.start()Запускает поток: его код начинает выполняться параллельно с вызывающим.