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

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

رفتن به کانال در Telegram

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

نمایش بیشتر

📈 تحلیل کانال تلگرام Java Portal | Программирование

کانال Java Portal | Программирование (@java_iibrary) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 12 130 مشترک است و جایگاه 10 377 را در دسته فناوری و برنامه‌ها و رتبه 54 419 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 12 130 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 05 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -142 و در ۲۴ ساعت گذشته برابر -1 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 11.75% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 6.20% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 1 426 بازدید دریافت می‌کند. در اولین روز معمولاً 753 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 4 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند boot, string, void, архитектура, resttemplate تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 06 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

12 130
مشترکین
-124 ساعت
-407 روز
-14230 روز
آرشیو پست ها
Polling vs Long Polling vs Webhooks vs SSE Четыре способа получать обновления от сервера. Каждый даёт свой баланс между прост
Polling vs Long Polling vs Webhooks vs SSE Четыре способа получать обновления от сервера. Каждый даёт свой баланс между простотой, эффективностью и «почти реалтайм» доставкой. Вот как они отличаются: — Polling Клиент каждые несколько секунд отправляет запрос: «есть что-то новое?». Сервер отвечает сразу — независимо от наличия данных. Большинство ответов пустые, что тратит ресурсы клиента и сервера. Подходит для сценариев вроде статуса заказа, где допустима задержка и важна простота реализации. — Long Polling Клиент отправляет запрос, а сервер держит HTTP-соединение открытым до появления данных или таймаута. Пустых ответов значительно меньше, чем в обычном polling. Использовался, например, в чатах для приближения к реалтайм-доставке сообщений. — SSE (Server-Sent Events) Клиент открывает постоянное HTTP-соединение, сервер стримит события по мере появления. Односторонний канал, лёгкий, работает поверх обычного HTTP. Многие AI-интерфейсы стримят ответы токен за токеном именно через SSE. — Webhooks Вместо опроса клиентом, сервис сам отправляет HTTP POST на заранее зарегистрированный callback URL при наступлении события. Stripe использует для подтверждения платежей, GitHub — для событий push. Клиент не держит соединение и не делает запросы, просто принимает вызовы. Часто используется комбинация: polling для простых статусов, SSE для стриминга, webhooks для событий. 👉 Java Portal

В Java можно использовать Optional.orElseThrow() для реализации так называемого fail-fast поведения. ✅ Fail-fast означает, чт
В Java можно использовать Optional.orElseThrow() для реализации так называемого fail-fast поведения. ✅ Fail-fast означает, что ошибки фиксируются ближе к месту возникновения, за счёт чего стек вызовов проще читать и анализировать #Java #РазработкаПО 👉 Java Portal

Реальная сила Stream Gatherers в Java 24: кастомная stateful-магия с ранним завершением Java 24 добавляет Stream Gatherers (J
Реальная сила Stream Gatherers в Java 24: кастомная stateful-магия с ранним завершением Java 24 добавляет Stream Gatherers (JEP 485) — серьёзное расширение Stream API. Они позволяют создавать кастомные промежуточные операции с поддержкой stateful-преобразований, m-to-n отображений, раннего завершения и параллельного выполнения. В отличие от коллекторов (которые терминальные), Gatherers работают прямо внутри конвейера стримов. Это убирает необходимость в костылях вроде сбора во временные списки или ручных циклов для сложной логики — скользящие окна, накопительные суммы, дедупликация, батчинг. С Gatherers код на стримах остаётся ленивым, читаемым, композиционным и переиспользуемым. Теперь Stream API выглядит завершённым для реальных сценариев обработки данных. 👉 Java Portal

Совет по Java: можно избежать чрезмерного количества параметров метода, сгруппировав связанные значения в объекты. #Java #Раз
Совет по Java: можно избежать чрезмерного количества параметров метода, сгруппировав связанные значения в объекты. #Java #РазработкаПО 👉 Java Portal

Подключения к базе данных — дорогая операция. Открывать и закрывать их на каждый запрос? Ещё хуже. Я нашёл простой разбор тог
Подключения к базе данных — дорогая операция. Открывать и закрывать их на каждый запрос? Ещё хуже. Я нашёл простой разбор того, как на самом деле работает пул соединений и почему это важно. Ссылка: https://sagarshiroya.dev/posts/database-connection-and-pooling #Database #SystemDesign 👉 Java Portal

Spring Boot: избегай FetchType.EAGER, если в этом нет реальной необходимости. ❌ Пометка связи как EAGER заставляет ORM загруж
Spring Boot: избегай FetchType.EAGER, если в этом нет реальной необходимости. ❌ Пометка связи как EAGER заставляет ORM загружать её при каждой загрузке сущности, независимо от того, вызываешь ли ты метод этой связи на самом деле. #Springboot #РазработкаПО 👉 Java Portal

В Java, если нужно интегрировать полноценного агента, который умеет вызывать инструменты, запускать циклы, хранить контекст и поднимать веб-интерфейс для отладки, не стоит каждый раз собирать это с нуля — здесь уже есть готовый встраиваемый движок. Встраиваемый движок AI-агента для любого Java-приложения — CLI · REST API · веб Playground Базовая логика максимально простая: когда модели нужно вызвать инструмент, она выполняет его, записывает результат обратно в контекст и продолжает выполнение. Весь этот цикл упакован в Java-библиотеку и слой приложения на Spring Boot, поэтому его можно напрямую встроить в бизнес-систему или использовать как CLI, REST-сервис или веб Playground. 👉 Java Portal

Java: Если нужно читать небольшие файлы, можно использовать Files.readAllLines() — это более прямой и простой способ. #Spring
Java: Если нужно читать небольшие файлы, можно использовать Files.readAllLines() — это более прямой и простой способ. #SpringBoot #JavaDev 👉 Java Portal

Для тех кто просил, наш канал с мемами для программистов и айтишников 👇 https://t.me/+VS5COdLqY_s4OTYy

Java Generics — всё, что нужно знать 1. Box<T> → Обобщённый класс • Используй, когда класс работает с любым типом (например, обёртка вокруг любого объекта, как Box<User>, Box<Integer>). 2. <T> void print(T val) → Обобщённый метод • Используй, когда метод должен принимать любой тип (например, для печати любого объекта, логирования, сравнения и т.п.). 3. <T extends Number> → Ограниченный тип • Называется верхней границей. • Используй, когда тип должен быть подклассом чего-то (например, утилита для работы с int, double, float). 4. <T extends A & B> → Несколько ограничений • Заставляет T реализовывать и A, и B. • Используй, когда нужны обе особенности (например, сортировка объекта, который также требует валидации). 5. <?> → Неограниченный подстановочный тип • Это означает неизвестный тип. • Используй, когда не важен тип, нужно только читать (например, печать элементов из любого списка). 6. <? extends T> → Верхняя граница подстановочного типа • Означает некоторый подкласс T. • Используй при чтении из коллекции (например, чтение чисел из List<? extends Number> без модификации). 7. <? super T> → Нижняя граница подстановочного типа • Означает некоторый суперкласс T. • Используй при записи в коллекцию (например, добавление Integer в List<? super Integer>). 8. Правило PECS • Producer Extends, Consumer Super. • Используй extends для чтения, super для записи (например, API-вход против обработки ответа). 9. List list = new ArrayList(); → Сырой тип • Это сырой тип. • Избегай — тк теряется типовая безопасность (например, компилятор не поймает, если добавишь неверные типы). 10. Стирание типов • Java удаляет всю информацию об обобщениях во время выполнения. • Поэтому нельзя использовать T.class, new T(), или instanceof T (например, нельзя делать проверки или создавать объекты на основе T). 11. Обобщённый конструктор
<T> MyClass(T val) { }
• Используй, когда конструктору нужен обобщённый параметр, даже если сам класс не обобщённый (например, инициализация с динамическими типами). 12. Обобщённый интерфейс
interface Mapper<F, T> { T map(F input); }
• Используй при преобразовании одного типа в другой (например, DTO → сущность). 13. Нельзя использовать примитивы • Нельзя List<int> — только List<Integer>. • Используй обёртки (коллекции могут хранить только объекты, не примитивы). 14. Нельзя создавать массивы с обобщением • new T[] не работает. • Используй List<T> вместо (например, динамические коллекции). 15. Нельзя использовать подстановочные типы для вставки • Нельзя вставлять в List<? extends Number>. • Используй <? super Number>, если нужна вставка (например, для пакетной обработки или модификации коллекции). 👉 Java Portal

Вы предпочитаете аккуратно отформатированные текстовые блоки для аннотаций запросов при использовании Spring Data? https://spring.io/tools теперь умеет генерировать именно такие при преобразовании AOT-метаданных репозитория в аннотации запросов 👉 Java Portal

JavaDoc получил реальное улучшение удобства использования в Java 24. Парень написал практический туториал, который показывает, как использовать JavaDoc с Markdown через комментарии /// в небольшой библиотеке на Maven + JUnit, включая документацию пакетов, записи, запечатанные типы, генерацию JavaDoc и всплывающие подсказки в IDE. http://buff.ly/RmaVWSt #Java #Java24 #Javadoc #Maven 👉 Java Portal

Поставлено в JDK 22: JEP 454 добавил в Java стандартный API для работы с внешними функциями и памятью. Вызов нативного кода б
Поставлено в JDK 22: JEP 454 добавил в Java стандартный API для работы с внешними функциями и памятью. Вызов нативного кода больше не обязан начинаться с шаблонного кода JNI. Небольшой пример 👇

Совет по Java Spring Boot Если в JSON-запросе приходят лишние поля, приложение может упасть с ошибкой UnrecognizedPropertyExc
Совет по Java Spring Boot Если в JSON-запросе приходят лишние поля, приложение может упасть с ошибкой UnrecognizedPropertyException. Чтобы этого избежать и не ломать API, добавь аннотацию:
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserDTO {
    private String name;
    private int age;
}
👉 Java Portal

Java-Инженеры, наблюдающие, как все остальные вайбкодят приложения 👉 Java Portal

🇷🇺Разбираешься в радиочипах, оптике и связи? Забери до 2 000 000 рублей за свои инженерные навыки на турнире «Дронкон»🇷🇺
🇷🇺Разбираешься в радиочипах, оптике и связи? Забери до 2 000 000 рублей за свои инженерные навыки на турнире «Дронкон»🇷🇺 «Сталинские Соколы» открывают регистрацию на 3-й Всероссийский турнир «Дронкон», который пройдет с 8 по 14 мая. 2 направления для победы: - Инженерное дело: беспроводная связь, радиочипы и оптические системы + стратегия «Битва Дронов»; - Пилотирование: War Thunder, GeoGuessr и FPV-гонки + стратегия «Битва Дронов». Призовой фонд для победителей одной дисциплины: 🥇место – 2 000 000 рублей 🥈место – 1 500 000 рублей 🥉место – 1 000 000 рублей Награда за 4-8 места - 150 000 рублей Пройди заочный онлайн-этап и получи путевку на очный этап турнира в Республику Татарстан! Перелет, питание, проживание - за счет организаторов. 🇷🇺 Подать заявку и узнать подробности 🇷🇺

Java: используйте WeakHashMap для кэширования, когда ключи без ссылок должны удаляться сборщиком мусора. ❌В HashMap, пока существует сама мапа, ключи и связанные с ними значения не будут удаляться сборщиком мусора. ✅В WeakHashMap ключи хранятся через слабые ссылки, и если на ключ больше нет сильных ссылок в программе, сборщик мусора может его удалить, и он автоматически исчезнет из мапы. ✅Пример:
Map<User, String> map = new WeakHashMap<>();

User u1 = new User("Mick");
map.put(u1, "Cached data");
...
u1 = null;

// С этого момента ключ u1 доступен для сборки мусора.
#Java #JavaDev 👉 Java Portal

Spring Boot: есть возможность использовать стриминг (Stream<T>) для запросов с большими наборами данных. Результаты подтягиваются чанками, при этом в памяти одновременно находится только небольшая часть данных В следующем примере есть приложение с CommandLineRunner, которое сохраняет большой набор пользователей в базу данных, а затем обрабатывает данные через стрим:
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    CommandLineRunner run(UserRepository repo, UserService service) {
        return args -> {
            // Генерация тестовых данных
            for (int i = 1; i <= 10000; i++) {
                repo.save(new User("User_" + i));
            }

            // Обработка через стрим
            service.processUsers();
        };
    }
}
Метод processUsers работает в транзакции и использует метод репозитория streamAllUsers, который возвращает стрим:
@Service
public class UserService {

    private final UserRepository repository;

    @PersistenceContext
    private EntityManager em;

    public UserService(UserRepository repository) {
        this.repository = repository;
    }

    @Transactional(readOnly = true)
    public void processUsers() {
        AtomicInteger counter = new AtomicInteger();

        try (Stream<User> stream = repository.streamAllUsers()) {
            stream.forEach(user -> {
                System.out.println(user.getName());

                if (counter.incrementAndGet() % 100 == 0) {
                    em.clear();
                }
            });
        }
    }
}
public interface UserRepository extends JpaRepository<User, Long> {

    @Query("SELECT u FROM User u")
    Stream<User> streamAllUsers();
}
Важные моменты: - Нужно использовать транзакцию, иначе соединение может закрыться раньше времени и стрим оборвётся - Рекомендуется задать размер выборки через spring.jpa.properties.hibernate.jdbc.fetch_size=100, так как некоторые драйверы могут загрузить всё сразу - Стрим удерживает ресурсы базы данных, его обязательно нужно закрывать (через try-блок, как в примере) #SpringBoot #JavaDev 👉 Java Portal

Освой Java с нуля Этот бесплатный курс охватывает широкий спектр тем, начиная от базовых концепций, таких как переменные, массивы, условные операторы и циклы, до более сложных аспектов, включая ООП, работу с файлами, двумерные массивы и работу с базами данных. Материалы включают теоретические объяснения, практические примеры кода, и иногда задачи для самостоятельного выполнения ⛓Ссылка: тык 👉 Java Portal

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