Документация по Java
Краткий справочник по Java с примерами. Прочитай концепцию, посмотри код, а затем потренируйся в курсе Coddy.
Начать пошаговый курс по JavaНачало работы
- Что такое JavaЧто на самом деле представляет собой Java, как JVM позволяет одной скомпилированной программе работать где угодно и какое программное обеспечение создают на Java.
- Установка JavaКак установить комплект разработчика Java (JDK), выбрать версию и поставщика и убедиться, что java и javac работают из командной строки.
- Запуск JavaДвухэтапный цикл «скомпилировать, затем запустить», стоящий за каждой Java-программой: превратите исходник .java в байт-код с помощью javac, а затем запустите файл .class командой java.
- Синтаксис JavaФорма программы на Java — метод `main`, инструкции и точки с запятой, блоки и фигурные скобки, а также правила, которые компилятор требует ещё до того, как ваш код запустится.
- КомментарииКак писать комментарии в Java: однострочные комментарии //, многострочные блоки /* */ и документирующие комментарии Javadoc /** */, а также когда применять каждый и чего избегать.
Переменные и типы
- ПеременныеКак работают переменные в Java — объявление с типом, присваивание значений, правила именования, ключевое слово var, константы с final и правила области видимости, которые определяют, где живёт переменная.
- Типы данныхТипы данных Java простыми словами: восемь примитивных типов, ссылочные типы, значения по умолчанию, литералы и суффиксы, переполнение и когда какой числовой тип использовать.
- СтрокиКак работают строки в Java: их создание, объединение через +, почему они неизменяемы, сравнение через equals и повседневные методы String, такие как length, substring и replace.
- Форматирование строкКак форматировать строки в Java с помощью String.format и printf - спецификаторы формата для чисел, выравнивания и десятичных знаков, а также text blocks и метод formatted.
- ОператорыКак работают операторы Java - арифметические, сравнения, логические, присваивания, инкремента и тернарный оператор - а также целочисленное деление, приоритет и подводные камни, на которых спотыкаются новички.
- Приведение типовКак Java преобразует типы: автоматическое расширение, явные сужающие приведения, какие данные теряются при сужении и преобразование между числами и строками.
Поток управления
- if-elseКак принимать решения в Java с помощью if, else if и else: булевы условия, цепочки ветвей, вложенность, тернарный оператор и распространённые ошибки, на которых спотыкаются многие.
- switchОператор switch в Java с пояснениями: метки case, break и fall-through, ветка default, группировка case, современная стрелочная форма и switch-выражения.
- Цикл forЦикл for в Java на примерах: классический цикл из трёх частей, перебор массивов и списков, вложенные циклы, break и continue, а также улучшенный for-each.
- Циклы whileЦикл while в Java простыми словами: while, который проверяет условие сначала, do-while, выполняющийся хотя бы один раз, чтение ввода до сторожевого значения, break и continue и как избегать бесконечных циклов.
- Цикл for-eachЦикл for-each в Java (расширенный for) с объяснением: чистая итерация по массивам и коллекциям, когда его использовать и ловушка с изменением, на которой спотыкаются все.
Массивы и коллекции
- МассивыКак работают массивы в Java - фиксированная длина, объявление и инициализация, индексация, length, циклы, многомерные массивы и класс-утилита Arrays.
- ArrayListКак использовать ArrayList в Java - список с изменяемым размером, к которому прибегают вместо обычного массива - с добавлением, получением, удалением, размером, перебором и сортировкой.
- HashMapКак использовать HashMap в Java для поиска по ключу: put, get, getOrDefault, containsKey, перебор записей и приёмы, к которым вы будете прибегать чаще всего.
- HashSetКак использовать HashSet в Java для коллекций уникальных значений: add, contains, remove, удаление дубликатов из списка и объединение множеств через union, intersection и difference.
- Перебор коллекцийСпособы перебора коллекций в Java - цикл for-each, Iterator, циклы по индексу и метод forEach - а также как безопасно удалять элементы во время итерации.
Методы
- МетодыЧто такое метод в Java, как его объявить и вызвать, возвращаемые значения и void, статический метод main и как методы помогают держать код организованным и переиспользуемым.
- Параметры методовКак работают параметры методов в Java — передача аргументов, разница между параметрами и аргументами, правило передачи по значению в Java и возврат значений.
- Перегрузка методовКак перегрузка методов в Java позволяет нескольким методам делить одно имя, но принимать разные параметры, как компилятор выбирает перегрузку и каких ловушек неоднозначности избегать.
- VarargsКак varargs (...) в Java позволяют методу принимать любое число аргументов, как они превращаются в массив, правило единственного vararg в конце и подвохи с пустым вызовом и неоднозначностью.
Классы и объекты
- КлассыЧто такое класс в Java, как определять поля и методы, создавать объекты с помощью new, какова роль this и почему состояние экземпляра хранится в объекте.
- КонструкторыКак работают конструкторы в Java: конструктор по умолчанию, параметризованные конструкторы, this, перегрузка конструкторов и цепочки вызовов с this() и super().
- НаследованиеКак подкласс в Java наследует поля и методы с помощью extends, обращается к родителю через super и переопределяет поведение - а также распространённые подводные камни.
- ИнтерфейсыЧто такое интерфейс в Java, как его определить и реализовать, методы default и static, и чем интерфейсы отличаются от абстрактных классов.
- Абстрактные классыЧто такое абстрактный класс в Java, как объявлять абстрактные методы, почему его нельзя инстанцировать и когда выбирать абстрактный класс вместо интерфейса.
- ПолиморфизмКак полиморфизм в Java позволяет одной переменной ссылаться на множество типов, почему переопределённые методы выбираются во время выполнения и как безопасно использовать upcasting, downcasting и instanceof.
- Модификаторы доступаКак четыре уровня доступа в Java - public, private, protected и package-private - управляют тем, что другой код может видеть и трогать.
- Статические членыЧто делает ключевое слово static в Java, как static-поля и методы принадлежат классу, а не объектам, и когда стоит прибегать к static-блокам и константам.
- ПеречисленияЧто такое enum в Java, как его объявить, добавить поля и методы, использовать в switch и почему enum лучше кучи констант int или String.
Дженерики и функциональный стиль
- ДженерикиЧто такое дженерики в Java, как писать обобщённые классы и методы, ограниченные параметры типа, подстановочные знаки и почему важно стирание типов.
- Лямбда-выраженияЧто такое лямбда-выражение в Java, синтаксис со стрелкой, как оно реализует функциональный интерфейс, ссылки на методы и захват переменных.
- СтримыКак обрабатывать коллекции с помощью Stream API в Java - filter, map, sorted, collect, count и reduce - строя читаемые конвейеры вместо ручных циклов.
- OptionalЧто такое java.util.Optional, как его создать и как безопасно прочитать его значение с помощью map, filter, orElse и ifPresent вместо проверок на null.
Ошибки и отладка
- ИсключенияЧто такое исключение в Java, как читать трассировку стека, различие между проверяемыми и непроверяемыми исключениями, иерархия исключений и как выбрасывать свои собственные.
- try-catchКак использовать try-catch в Java для обработки исключений: перехват конкретных типов, блок finally, try-with-resources и ошибки, которые скрывают баги.
- NullPointerExceptionЧто на самом деле означает NullPointerException в Java, типичные способы его вызвать, как читать сообщение и какие приёмы его предотвращают.