Java: fill the gaps
Привет! Меня зовут Диана, и я занимаюсь разработкой с 2013. Здесь пишу просто и понятно про джава бэк 🔥Тот самый курс по многопочке🔥 https://fillthegaps.ru/mt Комплименты, вопросы, предложения: @utki_letyat
Show more📈 Analytical overview of Telegram channel Java: fill the gaps
Channel Java: fill the gaps (@java_fillthegaps) in the Russian language segment is an active participant. Currently, the community unites 12 549 subscribers, ranking 10 120 in the Technologies & Applications category and 52 841 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 12 549 subscribers.
According to the latest data from 07 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -46 over the last 30 days and by 0 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 34.72%. Within the first 24 hours after publication, content typically collects N/A% reactions from the total number of subscribers.
- Post reach: On average, each post receives 0 views. Within the first day, a publication typically gains 0 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
- Thematic interests: Content is focused on key topics such as redis, hashmap, linkedhashmap, индекс, фича.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Привет! Меня зовут Диана, и я занимаюсь разработкой с 2013. Здесь пишу просто и понятно про джава бэк
🔥Тот самый курс по многопочке🔥
https://fillthegaps.ru/mt
Комплименты, вопросы, предложения: @utki_letyat”
Thanks to the high frequency of updates (latest data received on 08 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
class IOException extends ExceptionЯвно указываются в сигнатуре методов:
void write(int c) throws IOExceptionИсключение обрабатывается в блоке try-catch. Иначе программа не скомпилируется. На практике checked используется, когда метод знает, что делать с ошибкой: попробовать ещё раз, выполнить другой код или вернуть значение по умолчанию. 1️⃣ Работа с внешними ресурсами — файлы, БД, другие сервисы. Повторить попытку или переоткрыть соединение 2️⃣ Ожидаемая ошибка Например, данные в легаси системе хранятся в двух форматах. Если не удалось прочитать одним способом, попробуем другим. 🔸Unchecked исключения — наследники класса RuntimeException:
class NullPointerException extends RuntimeExceptionО них не пишут в сигнатуре методов. Их редко ловят в блоке try-catch. Компилятор не предупредит о возможных ошибках, но иногда о них предупреждает IDE. Единственная техническая разница между checked и unchecked - за checked исключениями и их обработкой следит компилятор. На уровне JVM разницы нет - производительность обоих типов одинакова. На практике unchecked используются для ошибок, которые никто не ждал и что с ними делать во время работы программы - непонятно. ⭐️Правильный ответ на вопрос 1: обработка checked исключений обязательна и проверяется на этапе компиляции 🔸А что делать с ошибками бизнес-логики? Не найден пользователь, не хватает прав , превышен лимит снятия денег со счёта. Какие это исключения: checked или unchecked? В старых статьях по java и на курсах для новичков ответ однозначен. Все исключение должны быть checked, чтобы пользователь не увидел ошибку. Энтерпрайз - другое дело. Тысячи методов, тысячи проверок и ошибок. Если checked исключений много, код становится запутанным и сложным. Плюс исключения часто обрабатываются одинаково: записать в лог и отправить пользователю стандартное сообщение. В Spring и похожих фреймворках есть обработчики, который перехватывает все исключения. В таких системах бизнесовые ошибки часто делают unchecked, чтобы упростить код. Во многих проектах даже переводят checked исключения в unchecked:
catch (SQLException e)
{throw new IllegalStateException(e);}
⭐️Правильный ответ на вопрос 2:
На практике чаще встречается
extends RuntimeExceptionно вариант
extends Exception тоже ок
#coreif (obj instanceof String str)можно сразу использовать str как переменную. 2️⃣ Новое API: ▪️Алгоритм цифровой подписи EdDSA появился в пакете security. ▪️Foreign-Memory Access API: доступ к памяти за пределами Heap. ▪️Скрытые классы: Большинство фреймворков работают так: помечаете классы аннотациями, фреймворк их находит и создаёт класс-обёртку с дополнительными функциями.
MethodHandles.lookup() .defineHiddenClass(…)Создаст класс, который недоступен коду основного приложения. 3️⃣ Обновились классы DatagramSocket и MulticastSocket. 4️⃣ В финальную стадию вошли 2 сборщика мусора: ZGC и Shenandoah. Оба сборщика подойдут для приложений с RAM до 4 ТБ, в которых нежелательны долгие паузы на сборку мусора. В новых GC задержка не превысит 2 мс, но среднее время работы чуть увеличится. 5️⃣ Некоторые фичи стали недоступны: Nashorn JS Engine, Biased Locking, Solaris and SPARC Ports, RMI Activation for Removal Ответ на вопрос перед постом Как посчитать, когда версия java будет равна вашему возрасту: Пусть Age – возраст в 2020 x – количество лет, через которое версия = возраст.
Age + x = 15 + 2*x
x = Age - 15Ctrl + F12Есть функция частичного поиска, просто начните набирать часть имени метода. Список отфильтруется. 2️⃣ Найти класс или файл:
Shift-ShiftУниверсальный шорткат для поиска любых файлов в проекте. 3️⃣ Перейти к определению:
Ctrl + BДля переменных — где она была объявлена, для методов — к их реализации. 4️⃣ В предыдущий класс:
Ctrl + Alt + ⬅️ Ctrl + Alt + ➡️IDEA следит за перемещениями между файлами, и по истории можно быстро перемещаться. 5️⃣ Перейти на строку по номеру:
Ctrl + G"Проверь условие в строке 850". Можно не проматывать огромный класс, а быстро перейти на нужную строку. #IDEA
record Point(int x,int y){}
record Time(int hours,int min){}
❌ Point p = new Time(1,1);
Записи по факту одинаковые — два целых числа. Но имена разные, поэтому типы между собой несовместимы. У номинальных типов проверки часто происходят на этапе компиляции.
2️⃣ По данным внутри объекта. Тогда это структурный тип.
Для них возможна запись:
✅ Point p = new Time(1,1);
Структурные типы используются в функциональных языках и java script. Они добавляют больше гибкости, но менее управляемы.
В java структурных типов нет и скорее всего не будет. В 2013 году обсуждалось, чтобы ввести в язык первый структурный тип под названием arrow type. Выглядел бы он так:
(String) → IntegerИдею отвергли из-за сложностей реализации и адаптации к существующим библиотекам. Альтернативное решение — лямбда-выражения, представляют похожую функциональность, но с чётко определённым типом:
Function<String,Integer> f = str → str.length();Все структуры в java номинальные. Записи - не исключение. Номинальность была в требованиях для реализации, а в анонсе records называют nominal tuples — номинальные кортежи.
Available now! Telegram Research 2025 — the year's key insights 
