В Java иерархия исключений начинается от класса
🔹
🔹
Внутри Exception выделяют:
🔹
🔹
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
— Statement используется для
— PreparedStatement
Поэтому в реальных проектах почти всегда используют PreparedStatement.
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2👏1
Денормализация — это процесс
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2👏1
IO (Input/Output) — это
NIO (New IO) был введён в JDK 1.4 для
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Идемпотентность означает, что
Способы реализации:
—
—
—
—
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥1
this — это
—
—
—
—
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1🔥1
Наследование — это механизм ООП, позволяющий создавать
Наследование реализуется с помощью ключевого слова
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1
Технически
Field field = obj.getClass().getDeclaredField("finalField");
field.setAccessible(true);
field.set(obj, newValue); // может не сработатьПроблемы
—
—
—
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1👏1
Optional<T> —
Не стоит использовать
—
—
—
Стоит использовать:
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1👏1💯1
G1
Ключевые фазы
→
→
→
→
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
Иммутабельный объект — это объект,
🤖 Осталось 4 места на курс по ИИ-агентам. Набор закрывается 30 апреля.
🔗 Успеть на обучение
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2❤1
HashMap —
Что происходит при put(key, value):
🔹 Коллизия:
До Java 8 →
С Java 8 →
// Упрощённо: Node в списке или TreeNode в дереве
static class Node<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next;
}
🔹 Load factor и resize:
По умолчанию capacity =
Как только элементов стало больше
Поэтому если заранее знаете размер — задавайте начальную ёмкость:
// Хотим 1000 элементов без resize:
// 1000 / 0.75 ≈ 1334, берём следующую степень двойки
Map<String, Integer> map = new HashMap<>(2048);
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥2🤔1
Объект становится
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1
Типичные источники:
→
→
→
→
→
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥1
generics дают
Из-за стирания нельзя:
→
→
→
→
Частичная информация о дженериках сохраняется в сигнатурах полей и методов и доступна через рефлексию, но не на уровне конкретных экземпляров.
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1👏1
Это правило выбора
? extends T — ковариантность, структура-«производитель»: из неё можно безопасно
? super T — контравариантность, структура-«потребитель»: в неё можно безопасно
Отсюда мнемоника: если коллекция только отдаёт данные (producer) →
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1👏1
Контракт: если два объекта равны по equals(),
Если переопределить equals() и забыть про hashCode(), объект сломается в
Дополнительно equals() должен быть
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥1
В подавляющем большинстве случаев →
ArrayList — это динамический массив: доступ по индексу
LinkedList — двусвязный список: вставка/удаление по уже найденной позиции
LinkedList оправдан редко — например, когда нужен
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👏2🔥1
HashMap —
Hashtable —
ConcurrentHashMap —
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3👏1
fail-fast (ArrayList, HashMap)
fail-safe (CopyOnWriteArrayList, ConcurrentHashMap)
- CopyOnWriteArrayList при модификации копирует внутренний массив, итератор работает со «снимком» старого состояния;
- итератор ConcurrentHashMap слабо-согласованный (weakly consistent) — отражает состояние на момент создания или позже, без жёстких гарантий.
Fail-safe безопасны в многопоточке, но итератор может не видеть свежие изменения и обходятся дороже по памяти.
#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥1