Java: fill the gaps
Привет! Меня зовут Диана, и я занимаюсь разработкой с 2013. Здесь пишу просто и понятно про джава бэк 🔥Тот самый курс по многопочке🔥 https://fillthegaps.ru/mt Комплименты, вопросы, предложения: @utki_letyat
Mostrar más📈 Análisis del canal de Telegram Java: fill the gaps
El canal Java: fill the gaps (@java_fillthegaps) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 12 549 suscriptores, ocupando la posición 10 120 en la categoría Tecnologías y Aplicaciones y el puesto 52 841 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 12 549 suscriptores.
Según los últimos datos del 07 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -46, y en las últimas 24 horas de 0, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 34.72%. Durante las primeras 24 horas tras publicar, el contenido suele obtener N/A% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 0 visualizaciones. En el primer día suele acumular 0 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 0.
- Intereses temáticos: El contenido se centra en temas clave como redis, hashmap, linkedhashmap, индекс, фича.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Привет! Меня зовут Диана, и я занимаюсь разработкой с 2013. Здесь пишу просто и понятно про джава бэк
🔥Тот самый курс по многопочке🔥
https://fillthegaps.ru/mt
Комплименты, вопросы, предложения: @utki_letyat”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 08 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
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 — номинальные кортежи.
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
