Обмежений доступ для гостей

Вам доступно 3 уроки з цього курсу безкоштовно.

  • Коментарі доступні тільки авторизованим користувачам
  • Прогрес зберігається тільки 0:00
🔒
КурсиBackend розробка / Повний курс Java

Повний курс Java

Вигляд:

Вступ до Java

1

Що таке Java? Історія створення

Знайомство з мовою Java та її історією.

2

Чому Java популярна? Переваги мови

Переваги Java та сфери застосування.

3

JDK, JRE, JVM — архітектура Java

Архітектура платформи Java.

4

Встановлення JDK 21 та налаштування PATH

Налаштування середовища розробки.

5

Встановлення IntelliJ IDEA

Налаштування IDE для Java.

6

Перша програма: Hello World

Створення першої Java програми.

Основи синтаксису

7

Структура Java програми

Базова структура Java файлу.

8

Метод main() — точка входу

Головний метод програми.

9

Компіляція та запуск

Процес компіляції та виконання.

10

Змінні та їх оголошення

Оголошення та ініціалізація змінних.

11

Цілочисельні типи: byte, short, int, long

Цілочисельні примітивні типи.

12

Дробові типи: float, double

Типи з плаваючою точкою.

13

Типи char та boolean

Символьний та логічний типи.

14

Літерали та системи числення

Числові літерали в різних системах.

15

Коментарі та Javadoc

Документування коду.

Рядки

16

Клас String — створення рядків

Робота з класом String.

17

Методи length, charAt, substring

Базові методи рядків.

18

Методи indexOf, contains, replace

Пошук та заміна в рядках.

19

Порівняння рядків

Методи порівняння рядків.

20

StringBuilder та StringBuffer

Змінювані рядки.

Оператори

21

Арифметичні оператори

Математичні операції в Java.

22

Інкремент та декремент

Оператори ++ та --.

23

Оператори порівняння

Порівняння значень.

24

Логічні оператори

Булева логіка в Java.

25

Побітові оператори

Операції з бітами.

26

Тернарний оператор та пріоритет операторів

Умовний оператор та пріоритет.

Керуючі конструкції

27

Умовний оператор if

Базова умовна конструкція.

28

if-else та вкладені умови

Розгалуження логіки.

29

switch-case класичний

Множинний вибір.

30

switch expressions (Java 14+)

Сучасний синтаксис switch.

31

Pattern matching for switch (Java 21)

Патерни у switch.

32

Цикл for

Цикл з лічильником.

33

Цикл while

Цикл з передумовою.

34

Цикл do-while

Цикл з постумовою.

35

break, continue та мітки

Керування циклами.

Масиви

36

Одновимірні масиви

Створення масивів.

37

Ініціалізація масивів

Способи ініціалізації.

38

Доступ до елементів масиву

Робота з елементами.

39

Цикл for-each

Ітерація по масиву.

40

Багатовимірні масиви

Двовимірні масиви.

41

Зубчасті масиви

Масиви різної довжини.

42

Клас Arrays — сортування

Сортування масивів.

43

Клас Arrays — пошук та копіювання

Утилітні методи Arrays.

44

Передача масивів у методи

Масиви як аргументи.

Методи

45

Оголошення методів

Синтаксис методів.

46

Параметри методів

Передача аргументів.

47

Повернення значень

Return та типи повернення.

48

Перевантаження методів

Method overloading.

49

Область видимості змінних

Scope змінних.

50

Передача параметрів по значенню

Pass by value.

51

Varargs - змінна кількість аргументів

Змінна кількість аргументів.

52

Рекурсія — основи

Рекурсивні виклики.

53

Рекурсія — приклади

Практичні приклади рекурсії.

54

Статичні поля та методи

Модифікатор static.

55

Статичний імпорт

Static import.

Класи та об'єкти

56

Концепція ООП

Основи об'єктно-орієнтованого програмування.

57

Класи — оголошення

Створення класів.

58

Об

Інстанціювання об'єктів.

59

Поля класу

Змінні екземпляру.

60

Методи класу

Поведінка об'єктів.

61

Конструктори — основи

Ініціалізація об'єктів.

62

Конструктор за замовчуванням

Default constructor.

63

Перевантаження конструкторів

Constructor overloading.

64

Ключове слово this

Посилання на поточний об'єкт.

65

Ініціалізаційні блоки

Instance та static initializers.

Інкапсуляція

66

Принцип інкапсуляції

Приховування даних.

67

private та public

Модифікатори доступу.

68

protected та default

Package-private доступ.

69

Геттери та сеттери

Accessors та mutators.

70

Валідація в сеттерах

Перевірка вхідних даних.

71

Незмінні об

Immutable objects.

72

Record класи

Java Records.

Наслідування

73

Концепція наслідування

Ієрархія класів.

74

Ключове слово extends

Розширення класів.

75

Ключове слово super

Доступ до батьківського класу.

76

Виклик конструктора батька - super()

Super constructor.

77

Перевизначення методів - @Override

Method overriding.

78

Клас Object — корінь ієрархії

Корінь ієрархії.

79

Метод toString() — текстове представлення

Рядкове представлення.

80

equals() та hashCode() — контракт рівності

Порівняння об'єктів.

81

Метод clone() — клонування об\

Клонування об'єктів.

82

Ключове слово final

Заборона наслідування та зміни.

Поліморфізм

83

Концепція поліморфізму

Багатоформність в ООП.

84

Приведення типів — upcasting та downcasting

Type casting.

85

Оператор instanceof — перевірка типу

Перевірка типу.

86

Pattern matching для instanceof (Java 16+)

Сучасний синтаксис.

87

Динамічний поліморфізм — dynamic method dispatch

Runtime polymorphism.

88

Ковариантні типи повернення

Covariant return types.

Абстракція

89

Абстрактні класи — abstract keyword

Abstract classes.

90

Абстрактні методи — must override

Методи без реалізації.

91

Інтерфейси — оголошення контракту

Interface declaration.

92

Імплементація інтерфейсів — implements

Implements keyword.

93

Множинна імплементація інтерфейсів

Multiple interfaces.

94

default методи в інтерфейсах (Java 8+)

Default methods in interfaces.

95

static та private методи в інтерфейсах (Java 9+)

Статичні методи інтерфейсів.

Вкладені класи

96

Внутрішні класи — inner classes

Inner classes.

97

Статичні вкладені класи — static nested classes

Static nested classes.

98

Локальні класи — classes inside methods

Local classes.

99

Анонімні класи — anonymous inner classes

Anonymous classes.

100

Sealed classes — обмеження наслідування (Java 17+)

Запечатані класи.

Enum та анотації

101

Enum — основи

Перелічувані типи.

102

Enum — методи та конструктори

Enum з полями.

103

EnumSet та EnumMap

Колекції для enum.

104

Анотації — використання

Стандартні анотації.

105

Створення власних анотацій

Custom annotations.

Обробка виключень

106

Що таке Exception?

Концепція виключень.

107

Ієрархія виключень

Exception hierarchy.

108

try-catch блок

Обробка виключень.

109

Блок finally

Гарантоване виконання.

110

Checked vs Unchecked

Типи виключень.

111

throw — кидання виключень

Генерація виключень.

112

throws — оголошення

Декларація виключень.

113

Власні виключення

Custom exceptions.

114

try-with-resources

Автоматичне закриття ресурсів.

115

Multicatch та exception chaining

Множинний catch.

Колекції — List

116

Ієрархія колекцій

Java Collections Framework.

117

Інтерфейс Collection

Базовий інтерфейс.

118

Інтерфейс List

Упорядковані колекції.

119

ArrayList — будова

Динамічний масив.

120

ArrayList — методи

Основні операції.

121

LinkedList — будова

Зв'язаний список.

122

LinkedList — використання

Коли використовувати LinkedList.

Колекції — Set

123

Інтерфейс Set

Множини в Java.

124

HashSet

Множина на хеш-таблиці.

125

LinkedHashSet

Впорядкована множина.

126

TreeSet - впорядкована множина

Відсортована множина.

127

Comparable vs Comparator

Порівняння елементів.

Колекції — Map

128

Інтерфейс Map - пари ключ-значення

Словники в Java.

129

HashMap — будова та принцип роботи

Хеш-таблиця.

130

HashMap — колізії та їх обробка

Обробка колізій.

131

LinkedHashMap - порядок вставки

Впорядкована мапа.

132

TreeMap - впорядкована карта

Відсортована мапа.

133

ConcurrentHashMap - потокобезпечна мапа

Потокобезпечна мапа.

Generics

134

Навіщо потрібні Generics?

Типобезпека колекцій.

135

Generic класи - параметризовані типи

Параметризовані класи.

136

Generic методи - параметризовані методи

Параметризовані методи.

137

Bounded type parameters - обмеження типів

Обмеження типів.

138

Wildcards - підстановочні символи

Символи підстановки.

139

Type erasure - стирання типів

Стирання типів.

140

Обмеження Generics

Що не можна з generics.

Lambda вирази

141

Функціональні інтерфейси

Functional interfaces.

142

Lambda синтаксис - стрілковий оператор

Синтаксис лямбда-виразів.

143

Method references - посилання на методи

Посилання на методи.

144

Function, Predicate, Consumer

Стандартні функціональні інтерфейси.

145

Supplier та Operator

Додаткові функціональні інтерфейси.

Stream API

146

Що таке Stream?

Концепція потоків.

147

Створення стрімів

Способи створення.

148

filter та map - проміжні операції

Фільтрація та перетворення.

149

flatMap, sorted, distinct

Проміжні операції.

150

forEach та collect - термінальні операції

Термінальні операції.

151

reduce, count, findFirst — операції редукції

Агрегуючі операції.

152

Collectors — toList, toSet, toMap

Колектори.

153

groupingBy, partitioningBy — групування

Групування даних.

154

Parallel streams — паралельна обробка

Паралельні потоки.

155

Optional клас — уникнення null

Обробка null.

Робота з файлами

156

Клас File — робота з файловою системою

Робота з файловою системою.

157

FileReader та BufferedReader — читання текстових файлів

Читання текстових файлів.

158

FileWriter та BufferedWriter — запис текстових файлів

Запис текстових файлів.

159

Бінарні потоки — InputStream, OutputStream

InputStream та OutputStream.

160

NIO.2 — Path та Paths

Сучасний File API.

161

NIO.2 — Files клас

Утилітний клас Files.

162

Робота з директоріями

Операції з папками.

163

Серіалізація об\

Збереження об'єктів.

Date та Time API

164

LocalDate — робота з датами

Робота з датами.

165

LocalTime та LocalDateTime

Час та дата-час.

166

ZonedDateTime — час з часовими поясами

Часові зони.

167

Period та Duration — періоди часу

Інтервали часу.

168

DateTimeFormatter — форматування дат

Форматування дат.

JDBC

169

Що таке JDBC?

Java Database Connectivity.

170

Підключення до БД

Connection establishment.

171

Statement та PreparedStatement

Виконання запитів.

172

ResultSet — обробка результатів

Обробка результатів.

173

CRUD операції

Базові операції з БД.

174

Транзакції — commit, rollback

Управління транзакціями.

175

Connection Pooling — HikariCP

Пул з'єднань.

Основи багатопоточності

176

Процеси та потоки

Паралельне виконання.

177

Клас Thread

Створення потоків.

178

Інтерфейс Runnable

Альтернативний спосіб.

179

Життєвий цикл потоку

Thread states.

180

sleep(), join(), yield()

Керування потоками.

181

Пріоритети потоків

Thread priorities.

182

Daemon потоки

Фонові потоки.

183

Переривання потоків

Thread interruption.

Синхронізація

184

Race conditions

Стан гонки.

185

synchronized методи

Синхронізовані методи.

186

Синхронізовані блоки

Synchronized blocks.

187

wait(), notify(), notifyAll()

Міжпотокова взаємодія.

188

Deadlock

Взаємне блокування.

189

volatile

Видимість змін.

190

Atomic класи

Атомарні операції.

Concurrency API

191

ExecutorService

Управління потоками.

192

Callable та Future

Результати асинхронних операцій.

193

ThreadPool типи

Типи пулів потоків.

194

CompletableFuture

Асинхронне програмування.

195

Concurrent колекції

Потокобезпечні колекції.

Мережеве програмування

196

Мережеві протоколи

TCP та UDP.

197

Socket клієнт

Клієнтські сокети.

198

ServerSocket

Серверні сокети.

199

HttpClient

HTTP запити.

200

REST API виклики

Робота з REST.

Рефлексія та модулі

201

Reflection API - Class object, getClass()

Метапрограмування.

202

Інформація про клас - getMethods, getFields, getDeclaredMethods

Class introspection.

203

Виклик методів через рефлексію - Method.invoke()

Dynamic method invocation.

204

Java Module System - JPMS, module concept

JPMS.

205

Створення модулів - module declaration, exports

Module creation.

206

module-info.java - requires, exports, opens

Module descriptor.

Тестування

207

Навіщо тести? - testing benefits, TDD basics

Важливість тестування.

208

JUnit 5 основи - @Test annotation, test class

Фреймворк тестування.

209

Assertions - assertEquals, assertTrue, assertThrows

Перевірка результатів.

210

Анотації JUnit - @BeforeEach, @AfterEach, @BeforeAll, @AfterAll

Test lifecycle.

211

Параметризовані тести - @ParameterizedTest, @ValueSource

Parameterized tests.

212

Mockito основи - @Mock, when/thenReturn, verify

Мокування залежностей.

Build Tools

213

Maven основи - project structure, dependencies

Apache Maven.

214

pom.xml - groupId, artifactId, version, dependencies

Project Object Model.

215

Maven lifecycle - clean, compile, test, package, install

Фази збірки.

216

Gradle основи - build.gradle, Groovy/Kotlin DSL

Gradle build tool.

217

build.gradle - plugins, dependencies, tasks

Groovy DSL.

218

Maven vs Gradle - comparison, when to use each

Порівняння інструментів.

Патерни проектування

219

Що таке патерни? - GoF patterns, categories

Design patterns.

220

Singleton - private constructor, getInstance()

Один екземпляр.

221

Factory - factory method, abstract factory

Фабричний метод.

222

Builder - step-by-step construction, fluent API

Покрокова побудова.

223

Strategy - interchangeable algorithms

Стратегія.

224

Observer - publish-subscribe, event handling

Спостерігач.

225

Decorator - wrapping objects, adding behavior

Декоратор.

Spring Boot вступ

226

Що таке Spring? - Spring framework overview, IoC, DI

Spring Framework.

227

Spring Boot старт - spring initializr, starter dependencies

Швидкий старт.

228

Dependency Injection - @Autowired, @Component, @Service

Впровадження залежностей.

229

REST контролер - @RestController, @GetMapping, @PostMapping

REST API зі Spring.

230

Підсумки курсу - course summary, next steps, resources

Завершення та наступні кроки.

Коментарі

💬

Коментарі доступні тільки для авторизованих користувачів