uz
Feedback
Java Portal | Программирование

Java Portal | Программирование

Kanalga Telegram’da o‘tish

Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

Ko'proq ko'rsatish

📈 Telegram kanali Java Portal | Программирование analitikasi

Java Portal | Программирование (@java_iibrary) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 11 768 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 10 256-o'rinni va Rossiya mintaqasida 54 543-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 11 768 obunachiga ega bo‘ldi.

29 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -144 ga, so‘nggi 24 soatda esa -1 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 10.09% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.78% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 188 marta ko‘riladi; birinchi sutkada odatda 681 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 4 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent boot, string, void, архитектура, resttemplate kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

Yuqori yangilanish chastotasi (oxirgi ma’lumot 30 Avgust, 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.

11 768
Obunachilar
-124 soatlar
-237 kunlar
-14430 kunlar
Postlar arxiv
Внутренности Java switch Как компилятор выбирает, какую инструкцию использовать? Первое, что нужно знать: любой switch в Java компилируется в одну из двух JVM-инструкций: > tableswitch > lookupswitch Прежде чем разбирать, как работает каждая из них, давайте посмотрим, как компилятор решает, какую выбрать. Следующий код сгенерирует tableswitch:
public String tableSwitch() {
    return switch (value) {
        case 1 -> "one";
        case 2 -> "two";
        case 4 -> "four";
        default -> "other";
    };
}
А вот этот код сгенерирует lookupswitch:
public String lookupSwitch() {
    return switch (value) {
        case 1 -> "one";
        case 10 -> "ten";
        case 100 -> "one hundred";
        default -> "other";
    };
}
Видишь разницу? 👍 — да. вижу 🔥 — нужно разбирать 👉 Java Portal

Утечки памяти из-за загрузчика классов в Java Java-приложения могут терять память из-за цепочек загрузчиков классов, когда ст
Утечки памяти из-за загрузчика классов в Java Java-приложения могут терять память из-за цепочек загрузчиков классов, когда статические ссылки мешают сборщику мусора удалить старые загрузчики. Такое часто происходит при повторном деплое на серверах вроде Tomcat — и приводит к скрытым, трудноуловимым утечкам памяти 🍔 👉 Java Portal

Java с JMH для бенчмарков Создай класс-бенчмарк, чтобы замерить производительность нужного кода 😈 👉 Java Portal
Java с JMH для бенчмарков Создай класс-бенчмарк, чтобы замерить производительность нужного кода 😈 👉 Java Portal

Как создавать многомодульные проекты в Spring Boot 🔜 Читать: клик 👉 Java Portal | #cтатья
Как создавать многомодульные проекты в Spring Boot 🔜 Читать: клик 👉 Java Portal | #cтатья

Метод FileSystems.newFileSystem(Path) появился ещё в JDK 13 (2019), но многие до сих пор о нём не знают Он позволяет обращаться к содержимому файла, например ZIP-архива, как к файловой системе. Пример Java-программы:
void main() {
    Path src = Path.of("/opt/jdk-24/lib/src.zip");

    try (FileSystem fs = FileSystems.newFileSystem(src)) {
        for (Path root : fs.getRootDirectories()) {
            try (Stream<Path> walk = Files.walk(root, 1)) {
                walk.sorted().forEach(IO::println);
            }
        }
    }
}
Результат выполнения:
/
 /java.base
 /java.compiler
 /java.datatransfer
 /java.desktop
 /java.instrument
 /java.logging
 ...
 /jdk.unsupported
 /jdk.unsupported.desktop
 /jdk.xml.dom
 /jdk.zipfs
До появления этого метода нужно было использовать более сложный код с URI и явно указывать схему:
URI src = URI.create("jar:file:///opt/jdk-24/lib/src.zip");

try (FileSystem fs = FileSystems.newFileSystem(src, Map.of())) {
    ...
}
👉 Java Portal

Что такое LinkedList (двусвязный список) в Java? > Состоит из узлов, где каждый узел содержит данные и ссылки на следующий и предыдущий узлы > Быстрые вставки и удаления — O(1), если есть ссылка на нужный узел > Медленный доступ по индексу — O(n), т.к. нужно проходить список последовательно 🔧 Когда использовать: > Частые вставки и удаления — особенно в начале или в середине списка > Реализация очередей и деков — удобно добавлять в конец и забирать из начала > Работа с большими объёмами данных, где перераспределение памяти (как в ArrayList) может быть дорогим. LinkedList не требует непрерывной памяти > Undo/Redo-механизмы — например, в текстовых редакторах, где нужно быстро добавлять и удалять действия из истории 👉 Java Portal

Хочешь чистые REST API на Java? Используй: > @RestController > @RequestBody > @PathVariable > @ResponseStatus Spring REST пом
Хочешь чистые REST API на Java? Используй: > @RestController > @RequestBody > @PathVariable > @ResponseStatus Spring REST помогает писать код просто и понятно 🧑‍💻 👉 Java Portal

Упростите свой бизнес-код на Java с помощью Flow DSL 🔜 Читать: клик 👉 Java Portal | #cтатья
Упростите свой бизнес-код на Java с помощью Flow DSL 🔜 Читать: клик 👉 Java Portal | #cтатья

👩‍💻 Всем программистам посвящается! Вот 17 авторских обучающих IT каналов по самым востребованным областям программирования: Выбирай своё направление:
📱 GitHub — t.me/github_ready 👩‍💻 Python — t.me/python_ready 👩‍💻 Java — t.me/java_ready 👩‍💻 Всё IT — t.me/it_ready 👩‍💻 C/C++ — https://t.me/cpp_ready 🖼️ DevOpst.me/devops_ready 🤔 Хакинг & ИБ — t.me/hacking_ready 👩‍💻 C# & Unity — t.me/csharp_ready 👩‍💻 Linux — t.me/linux_ready 👩‍💻 Bash & Shell — t.me/bash_ready 👩‍💻 Нейросетиt.me/neuro_ready 📱 JavaScript — t.me/javascript_ready 👩‍💻 Frontend — t.me/frontend_ready 📖 IT Книги — t.me/books_ready 🖥 Базы Данных & SQL — t.me/sql_ready 👩‍💻 Backend — t.me/backend_ready 🖥 Design — t.me/design_ready
📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!

Этот Dockerfile для Spring Boot создаёт образ, который потребляет на 33% меньше памяти по сравнению с образом, собранным с по
Этот Dockerfile для Spring Boot создаёт образ, который потребляет на 33% меньше памяти по сравнению с образом, собранным с помощью Buildpacks (рекомендуемый Spring способ сборки Docker-образов) 💪 👉 Java Portal

В чём разница между throw и throws в Java? throw > Используется для явного выбрасывания исключения. > Синтаксис: throw new Ex
В чём разница между throw и throws в Java? throw > Используется для явного выбрасывания исключения. > Синтаксис: throw new ExceptionType("сообщение"); > Применяется внутри метода или блока. throws > Объявляет возможные исключения, которые может выбросить метод. > Указывается в сигнатуре метода. > В основном используется для проверяемых исключений 👉 Java Portal

🔍Тестовое собеседование на Middle Java-разработчика завтра 14 мая(уже завтра!) в 19:00 по мск приходи онлайн на открытое соб
🔍Тестовое собеседование на Middle Java-разработчика завтра 14 мая(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Константин Лесняк, Java-разработчик с большим опытом проведения собесов, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Костя будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Косте Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.  Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqvXmgo6

В Java можно ставить метку на выражение, которое уже промечено другой меткой. И так хоть до бесконечности. Полезно? Вряд ли. Стоит ли использовать? Точно нет. Но как факт — это работает Пример:
String question;
to: be: or: not: that: is: the: question = "What?";

out.println(question);
> Код компилируется > Метки (to:, be:, or: и т.д.) игнорируются, если не используются в break или continue Вывод:
What?
Иногда Java действительно говорит с нами стихами 🫢 👉 Java Portal

Способы сравнения строк в Java 1. == → Сравнивает адреса в памяти 2. .equals() → Сравнивает содержимое строк 3. .compareTo()
Способы сравнения строк в Java 1. == → Сравнивает адреса в памяти 2. .equals() → Сравнивает содержимое строк 3. .compareTo() → Лексикографическое сравнение 4. .equalsIgnoreCase() Сравнивает без учёта регистра > Подробнее тут 😊 👉 Java Portal

JDK 22 представил класс java.text.ListFormat. Используйте его, когда нужно отформатировать список строк в удобочитаемый вид. Например, вот такая программа:
final List<String> days = List.of("Mon", "Wed", "Fri");

void main() {
    print(Type.STANDARD);
    print(Type.OR);
    print(Type.UNIT);
}

private void print(Type type) {
    print(type, Style.FULL);
    print(type, Style.SHORT);
    print(type, Style.NARROW);
}

private void print(Type type, Style style) {
    var format = ListFormat.getInstance(Locale.US, type, style);
    var result = format.format(days);
    System.out.printf("%-8s + %-7s: %s%n", type, style, result);
}
Вывод:
STANDARD + FULL   : Mon, Wed, and Fri
STANDARD + SHORT  : Mon, Wed, & Fri
STANDARD + NARROW : Mon, Wed, Fri
OR       + FULL   : Mon, Wed, or Fri
OR       + SHORT  : Mon, Wed, or Fri
OR       + NARROW : Mon, Wed, or Fri
UNIT     + FULL   : Mon, Wed, Fri
UNIT     + SHORT  : Mon, Wed, Fri
UNIT     + NARROW : Mon Wed Fri
Также можно использовать ListFormat для разбора отформатированной строки обратно в список Ставь лайк если полезно 🪑 👉 Java Portal

Отличное руководство по безопасности Java-приложений 🔜 Читать: клик 👉 Java Portal | #cтатья
Отличное руководство по безопасности Java-приложений 🔜 Читать: клик 👉 Java Portal | #cтатья

Используйте DTO для запросов и ответов Никогда не передавайте сущности напрямую — всегда преобразовывайте их в DTO и обратно
Используйте DTO для запросов и ответов Никогда не передавайте сущности напрямую — всегда преобразовывайте их в DTO и обратно 🤍 база 👉 Java Portal

Вопросы для собеседования по микросервисам с ответами 1. Каковы ключевые характеристики микросервисов? Ответ: > Децентрализов
+1
Вопросы для собеседования по микросервисам с ответами
1. Каковы ключевые характеристики микросервисов? Ответ: > Децентрализованное управление данными > Сервисы развёртываются независимо друг от друга > Проектирование на основе предметной области (DDD) > Лёгкое взаимодействие (например, REST, gRPC) > Изоляция сбоев > Удобны для непрерывной доставки 2. Чем микросервисы отличаются от монолитной архитектуры? Ответ: > Монолит: единая кодовая база, жёстко связанные компоненты, сложно масштабировать. > Микросервисы: множество сервисов, слабо связанные, развёртываются и масштабируются независимо. 3. Каковы основные преимущества использования микросервисов? Ответ: > Лучшая масштабируемость > Более быстрое выведение продукта на рынок > Независимые развёртывания > Лучшая устойчивость к сбоям > Возможность использовать разные языки и технологии 4. Какие есть сложности при работе с микросервисами? Ответ: > Сложность управления распределёнными системами > Задержки в сети и накладные расходы на коммуникацию > Согласованность данных > Отладка и мониторинг > Развёртывание и оркестрация 5. Как микросервисы обмениваются данными? Ответ: > Синхронно: через REST, gRPC > Асинхронно: через очереди сообщений (RabbitMQ, Kafka) 6. Что такое service discovery в микросервисах? Ответ: > Это механизм, с помощью которого сервисы находят друг друга в сети. > Применяются инструменты вроде Consul, Eureka, DNS Kubernetes. 7. Что такое API Gateway и зачем он нужен? Ответ: > API Gateway — это единая точка входа в систему. Он отвечает за маршрутизацию, безопасность, ограничение частоты запросов и агрегацию ответов от разных сервисов. > Примеры: Kong, Zuul, NGINX, Spring Cloud Gateway. 8. Как в микросервисах управляют данными? Ответ: > Каждый сервис использует свою отдельную базу данных (подход “одна база на сервис”). > Для согласованности применяются событийная архитектура или паттерн саги. 9. Что такое паттерн Saga? Ответ: > Saga — это последовательность локальных транзакций. > Если одна из них завершается с ошибкой, запускаются компенсирующие действия для отката изменений. 10. Какие инструменты используют для разработки микросервисов? Ответ: > Языки: Java (Spring Boot), Node.js, Go, Python > Сборка: Maven, Gradle > Контейнеризация: Docker > Оркестрация: Kubernetes
👉 Java Portal

Вот хороший пример очень плохого использования метки в Java:
void main() {
    do onlyOnce: {
        IO.println("Один раз?");
        break onlyOnce;
    } while (true);
}
Компилируется без ошибок. При выполнении выводит:
Один раз?
Один раз?
Один раз?
Один раз?
Один раз?
...
Это приводит к бесконечному циклу 🙂 👉 Java Portal

Разработчики, вот вам шпаргалка по техникам синхронизации потоков в Java 🧑‍💻 synchronized блок/метод -> использует встроенн
Разработчики, вот вам шпаргалка по техникам синхронизации потоков в Java 🧑‍💻 synchronized блок/метод -> использует встроенную блокировку объекта для обеспечения взаимного исключения. ReentrantLock -> явная блокировка с более гибкими возможностями по сравнению с synchronized. volatile- > гарантирует видимость изменений переменной между потоками. Атомарные переменные (AtomicInteger и др.) -> обеспечивают атомарные операции без блокировок. Semaphore -> управляет доступом к ресурсу с ограниченным числом разрешений. CountDownLatch -> позволяет одному или нескольким потокам ожидать завершения операций в других потоках. CyclicBarrier -> позволяет группе потоков дождаться друг друга до продолжения выполнения. ReadWriteLock -> разрешает множественные параллельные чтения, но только одну запись. 👉 Java Portal