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

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

Открыть в Telegram

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

Больше

📈 Аналитический обзор Telegram-канала Java Portal | Программирование

Канал Java Portal | Программирование (@java_iibrary) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 11 768 подписчиков, занимая 10 256 место в категории Технологии и приложения и 54 543 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 11 768 подписчиков.

Согласно последним данным от 29 августа, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -144, а за последние 24 часа — -1, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 10.09%. В первые 24 часа после публикации контент обычно набирает 5.78% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 1 188 просмотров. В течение первых суток публикация набирает 681 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 4.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как boot, string, void, архитектура, resttemplate.

📝 Описание и контентная политика

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

Благодаря высокой частоте обновлений (последние данные получены 30 августа, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

11 768
Подписчики
-124 часа
-237 дней
-14430 день
Архив постов
Внутренности 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