Java: fill the gaps
Привет! Меня зовут Диана, и я занимаюсь разработкой с 2013. Здесь пишу просто и понятно про джава бэк 🔥Тот самый курс по многопочке🔥 https://fillthegaps.ru/mt Комплименты, вопросы, предложения: @utki_letyat
Ko'proq ko'rsatish📈 Telegram kanali Java: fill the gaps analitikasi
Java: fill the gaps (@java_fillthegaps) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 12 549 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 10 120-o'rinni va Rossiya mintaqasida 52 841-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 12 549 obunachiga ega bo‘ldi.
07 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -46 ga, so‘nggi 24 soatda esa 0 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 34.72% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining N/A% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 0 marta ko‘riladi; birinchi sutkada odatda 0 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 0 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent redis, hashmap, linkedhashmap, индекс, фича kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Привет! Меня зовут Диана, и я занимаюсь разработкой с 2013. Здесь пишу просто и понятно про джава бэк
🔥Тот самый курс по многопочке🔥
https://fillthegaps.ru/mt
Комплименты, вопросы, предложения: @utki_letyat”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 08 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
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 — номинальные кортежи.
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
