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

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

Ir al canal en Telegram

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

Mostrar más

📈 Análisis del canal de Telegram Java Portal | Программирование

El canal Java Portal | Программирование (@java_iibrary) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 12 109 suscriptores, ocupando la posición 10 407 en la categoría Tecnologías y Aplicaciones y el puesto 54 513 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 109 suscriptores.

Según los últimos datos del 09 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -147, y en las últimas 24 horas de -12, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 11.15%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 6.42% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 1 351 visualizaciones. En el primer día suele acumular 778 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 4.
  • Intereses temáticos: El contenido se centra en temas clave como boot, string, void, архитектура, resttemplate.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 10 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.

12 109
Suscriptores
-1224 horas
-387 días
-14730 días
Archivo de publicaciones
Вопросы для собеседования по микросервисам с ответами 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

Канал с курсами и книгами для айтишников Программирование 24/7 — настоящий портал для тех кто хочет стать айтишником. Там ест
Канал с курсами и книгами для айтишников Программирование 24/7 — настоящий портал для тех кто хочет стать айтишником. Там есть всё необходимое — топовые курсы и книги по всем языкам программирования(Frontend, Python, Java, C#, PHP и др.) Все бесплатно, доступно и удобно — @edprogramming

Начиная с JDK 12, появилась новая фича — java.text.CompactNumberFormat. Она позволяет компактно отображать большие числа Пример:
Locale.setDefault(Locale.US);
NumberFormat compact = NumberFormat.getCompactNumberInstance();

System.out.println(compact.format(1));
System.out.println(compact.format(999));
System.out.println(compact.format(2_000));
System.out.println(compact.format(55_555));
System.out.println(compact.format(3_777_999));
System.out.println(compact.format(Integer.MAX_VALUE));
Вывод:
1
999
2K
56K
4M
2B
Также доступен стиль LONG:
NumberFormat compact;
compact = NumberFormat.getCompactNumberInstance(Locale.US, Style.LONG);
Результат:
1
999
2 thousand
56 thousand
4 million
2 billion
Идеально для UI, отчетов и всего, где важна краткость 💖 👉 Java Portal

Курс по конкурентному программированию от Ильи Сергеева Если хочешь разобраться в параллельности, потоках, акторной модели и
Курс по конкурентному программированию от Ильи Сергеева Если хочешь разобраться в параллельности, потоках, акторной модели и распределёнке — лови топовый курс от препода Yale-NUS — Scala для конкурентного кода — Мьютексы, блокировки, атомики — Futures и async — Акторы и обмен сообщениями — Распределённый консенсус (в т.ч. BFT) Можешь поблагодарить лукасом 😍 👉 Java Portal

В Java лямбда-выражение создаёт экземпляр функционального интерфейса. Во время выполнения этот экземпляр создаётся с помощью класса LambdaMetaFactory Следующий код на Java создаёт объект Function<String, String>
Function<String, String> f = s -> s.toUpperCase();
Во время выполнения объект создаётся с помощью кода, аналогичного следующему:
@SuppressWarnings("unchecked")
void main() throws Throwable {
    MethodHandles.Lookup lookup;
    lookup = MethodHandles.lookup();

    CallSite callSite;
    callSite = LambdaMetafactory.metafactory(
        lookup,
        "apply",
        MethodType.methodType(Function.class),
        MethodType.methodType(Object.class, Object.class),
        lookup.findStatic(
            getClass(),
            "lambda",
            MethodType.methodType(String.class, String.class)
        ),
        MethodType.methodType(String.class, String.class)
    );

    MethodHandle target;
    target = callSite.getTarget();

    Function<String, String> f;
    f = (Function<String, String>) target.invokeExact();

    String msg;
    msg = f.apply("Hello, World!");

    IO.println(msg);
}

private static String lambda(String s) {
    return s.toUpperCase();
}
При выполнении этот код выведет в консоль HELLO, WORLD! ❤️ 👉 Java Portal

Имбовая библиотека цветов для Kotlin Multiplatform Если ты пилишь на Kotlin и хочешь красивые цвета под любую платформу — зацени compose-pipette Поддерживает: > JVM > Android (от API 21) > Kotlin/JS > Kotlin/WASM > macOS (пока не тестили) > iOS (тоже не тестили) Поддержи пост лайком ❤️ 👉 Java Portal

Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает? Психолог взрослого человек
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает? Психолог взрослого человека — канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам. ✔️ Как научиться отвлекаться от работы и отдыхать? ✔️ Как совместить кучу рабочих задач и время с семьей? ✔️ Как справиться с прокрастинацией? ✔️ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит? Подписывайтесь на канал @vadimpetrovpsi и научитесь работать без упахивания, выгорания и ущерба для личной жизни! 👨🏻‍💻 Псс. Заходите в закреп — там много полезного, и даже бесплатный мини-курс по выходу из апатии: https://t.me/+qYR5T3w5Yg41ZTQy

Strategy Pattern без занудства Ситуация: вы пишете платёжную систему У вас есть PaymentService, поддерживающий оплату кредитной картой. Вы пишете:
public void pay(String method) {
    if (method.equals("creditcard")) {
        // логика оплаты кредиткой
    }
}
Потом добавляют PayPal, UPI, крипту, Apple Pay, кошельки, NetBanking и тд.. 😢 Теперь ваш метод выглядит вот так:
if (method.equals("creditcard")) {
    // логика кредитки
} else if (method.equals("paypal")) {
    // логика PayPal
} else if ...
Вы тонете в аду if-else. Каждый раз при добавлении нового способа оплаты: > Вы трогаете старый код > Рискуете сломать существующую логику > Нельзя нормально протестировать стратегии > Нарушается принцип OCP (Open/Closed) В чём настоящая проблема? 1. Ваш код слишком жёстко связан с конкретными реализациями оплат 2. Добавление новых стратегий требует изменения существующего кода 3. Тестировать/переиспользовать отдельные стратегии — сложно 4. PaymentService теперь отвечает за слишком многое Как Strategy Pattern вас спасает 1. Создаёшь интерфейс PaymentStrategy 2. Для каждой оплаты — свой класс: CreditCardPayment, PayPalPayment, UPIPayment 3. PaymentService просто вызывает .pay() на нужной стратегии ☑ Добавить новый способ? Просто пишешь новый класс ☑ Никаких if-else ☑ Стратегии изолированы и легко тестируются
interface PaymentStrategy {
    void pay(int amount);
}

class CreditCardPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Плачу " + amount + " с помощью кредитки");
    }
}

class PayPalPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Плачу " + amount + " через PayPal");
    }
}
👉 Java Portal

Шпаргалка по Map-реализациям Если путаешься в HashMap, TreeMap, ConcurrentHashMap — лови таблицу сравнения > HashMap — быстра
Шпаргалка по Map-реализациям Если путаешься в HashMap, TreeMap, ConcurrentHashMap — лови таблицу сравнения > HashMap — быстрая, но не потокобезопасная. Подходит для общего использования > LinkedHashMap — сохраняет порядок вставки > TreeMap — сортирует по ключам. > Hashtable — потокобезопасна, но старая и медленная > ConcurrentHashMap — оптимальна для многопоточности > EnumMap — супербыстрая для enum-ключей > IdentityHashMap — использует == вместо .equals() > WeakHashMap — ключи могут быть удалены GC. Полезно для кэшей Не забывай про null-ключи, производительность, порядок —> всё это влияет на выбор структуры данных 💖 👉 Java Portal

Хочешь, чтобы Swagger UI был доступен без авторизации в Spring Boot? Просто добавь его в белый список: .antMatchers("/swagger
Хочешь, чтобы Swagger UI был доступен без авторизации в Spring Boot? Просто добавь его в белый список:
.antMatchers("/swagger-ui/", "/v3/api-docs/").permitAll()
Так разработчики смогут спокойно тестировать и изучать API без входа в систему 👉 Java Portal

Балансировка производительности и потокобезопасности 🔜 Читать: клик 👉 Java Portal | #cтатья
Балансировка производительности и потокобезопасности 🔜 Читать: клик 👉 Java Portal | #cтатья

Хотите получить строковое представление объекта так, как если бы методы toString и hashCode не были переопределены? Тогда мет
Хотите получить строковое представление объекта так, как если бы методы toString и hashCode не были переопределены? Тогда метод Objects::toIdentityString — это то, что вам нужно:
void main() {
    IO.println(this);
    IO.println(Objects.toIdentityString(this));
}

@Override
public String toString() {
    return "Hello, World!";
}
При выполнении на моей машине выводится:
Hello, World!
HelloWorld@275710fc
Метод был введён в JDK 19. Документация Javadoc не говорит много о возможных вариантах использования. В баге JDK-8280184 Стюарт Маркс пишет:
Это может быть полезно в логировании, например, когда нужно отслеживать операции, выполненные над каким-то конкретным объектом, например, перед сбоем. Идентичный хэшкод — полезный способ сделать это
👉 Java Portal

Дорожная карта Spring Boot для Java-разработчиков 💪💪💪 👉 Java Portal
Дорожная карта Spring Boot для Java-разработчиков 💪💪💪 👉 Java Portal

#вакансия Нужны программисты для долгосрочного оплачиваемого сотрудничества. Это достаточно простая подработка: написание кода, объяснение различных функций и написание авторских текстов. Требования:
Знания Java, не на базовом уровне. Опыт работы Figma Умение писать грамотные тексты с доступным объяснением на разные темы.
Если вам интересно и есть достаточно свободного времени, отпишите — @energy_it.

В Java можно столкнуться с ситуацией, когда поле final кажется имеющим два разных значения. Рассмотрим такой пример: void mai
В Java можно столкнуться с ситуацией, когда поле final кажется имеющим два разных значения. Рассмотрим такой пример:
void main() {
    var after = new Final(this::before);

    IO.println("After value=" + after.value);
}

private void before(Final before){
    IO.println("Before value=" + before.value);
}

class Final {
    final int value;

    Final(Consumer<? super Final> listener) {
        listener.accept(this);
        value = 123;
    }
}
Результат выполнения будет таким:
Before value=0  
After value=123
Это пример утечки this. JEP 401 называет это larval object leakage — ситуация, когда объект, ещё не до конца инициализированный, "просачивается" из конструктора и используется раньше времени. В JDK 24 в рамках JEP о гибких телах конструкторов (Flexible Constructor Bodies) эта проблема решается следующим образом:
Код в начале конструктора не должен использовать this, кроме как для инициализации полей, у которых нет своих инициализаторов.
Иначе говоря, в начальной части конструктора теперь нельзя "утечь" наружу с this, пока объект не готов 👉 Java Portal

Pattern Matching в switch — Java 🔜 Читать: клик 👉 Java Portal | #cтатья
Pattern Matching в switch — Java 🔜 Читать: клик 👉 Java Portal | #cтатья

⚡️ Дождались! Ребята сделали крутейшие каналы про Айти Здесь сложные темы объясняют на простых картинках, понятном языке. А т
+4
⚡️ Дождались! Ребята сделали крутейшие каналы про Айти Здесь сложные темы объясняют на простых картинках, понятном языке. А также решаем задачки, делимся ресурсами и советами. 📱 Python | Программирование ⚙️ Webdev | Backend & Frontend 😷 Hacking | Кибербезопасность 🖥 Memes | Мемы айтишников 🖥 CodHub | Курсы IT

В Java тело лямбды прозрачно для this. Например, следующий код выведет Hello, World!: private Runnable runnable = () -> { Sys
В Java тело лямбды прозрачно для this. Например, следующий код выведет Hello, World!:
private Runnable runnable = () -> {
    System.out.println(this);
};

@Override
public String toString() {
    return "Hello, World!";
}

void main() {
    runnable.run();
}
А если заменить лямбду на анонимный класс, результат будет вроде InnerClassThis$1@568bf312:
private Runnable runnable = new Runnable() {
    @Override public void run() {
        System.out.println(this);
    }
};

@Override
public String toString() {
    return "Hello, World!";
}

void main(String[] args) {
    runnable.run();
}
То есть у лямбды нет собственного this — она использует this из внешнего контекста. Это чётко описано в спецификации Java:
Значение this в теле лямбды — то же самое, что и this во внешнем контексте.
Если хочешь разобраться глубже, смотри официальный гайд 👉 Java Portal