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

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

Open in Telegram

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

Show more

📈 Analytical overview of Telegram channel Java Portal | Программирование

Channel Java Portal | Программирование (@java_iibrary) in the Russian language segment is an active participant. Currently, the community unites 12 109 subscribers, ranking 10 407 in the Technologies & Applications category and 54 513 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 12 109 subscribers.

According to the latest data from 09 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -147 over the last 30 days and by -12 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 11.15%. Within the first 24 hours after publication, content typically collects 6.42% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 351 views. Within the first day, a publication typically gains 778 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • Thematic interests: Content is focused on key topics such as boot, string, void, архитектура, resttemplate.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

Thanks to the high frequency of updates (latest data received on 10 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

12 109
Subscribers
-1224 hours
-387 days
-14730 days
Posts Archive
Типы массивов в Java В Java существует два основных типа массивов: Регулярные массивы — фиксированное число строк и столбцов
Типы массивов в Java В Java существует два основных типа массивов: Регулярные массивы — фиксированное число строк и столбцов Регулярные массивы делятся на: > 1-мерные массивы > 2-мерные массивы > 3-мерные и более Во всех случаях каждая строка содержит одинаковое количество элементов. > Зубчатые массивы Это массив массивов, в котором вложенные массивы могут иметь разную длину. Можно создавать 2D или 3D массивы с переменным числом столбцов в каждой строке. Одномерный массив (1D array) — это список элементов, хранящихся в одной строке. Он используется для хранения нескольких значений одного типа в линейной форме Синтаксис:
dataType[] arrayName = new dataType[size];
или
dataType[] arrayName = {value1, value2, value3, ...};
Пример: Список студентов в одном классе.
class MasterBackend {
    public static void main(String[] args) {
        // 1D Array: Students in a single class
        String[] students = {"Ayush", "Rahul", "Neha", "Priya"};

        System.out.println("Students in a class:");
        for (String student : students) {
            System.out.println(student);
        }
    }
}
Вывод:
Students in a class:
Ayush
Rahul
Neha
Priya
👉 Java Portal

Если хотите прокачаться в системном дизайне, разберитесь с этими концептами: > API Gateway vs Load Balancer — ссылка > Reverse Proxy vs Forward Proxy — ссылка > Горизонтальное и вертикальное масштабирование — ссылка > Микросервисы и монолитная архитектура — ссылка 👉 Java Portal

Хочешь разобраться в геймдеве — разберись в чужом проекте с открытым кодом Вот отличный кандидат: Gloomy Dungeons II — класси
+1
Хочешь разобраться в геймдеве — разберись в чужом проекте с открытым кодом Вот отличный кандидат: Gloomy Dungeons II — классический 3D-шутер на Android, вдохновлённый Doom и Wolfenstein. Открытый MIT-проект на Java, с кастомным движком, освещением, текстурами и даже ракетницей. ➡️ Cсылка на GitHub 👉 Java Portal

Хотите добавить динамическое поведение в ваши Java-классы? Используйте библиотеку Java Class Extension Library для добавления
Хотите добавить динамическое поведение в ваши Java-классы? Используйте библиотеку Java Class Extension Library для добавления динамических операций к существующим классам или для предоставления реализаций интерфейсов "на лету" Кстати, теперь эта библиотека включает новый механизм circuit breaker (автоматическое прерывание цепочки вызовов) Это позволяет легко добавить функциональность circuit breaker к любой из ваших операций — без изменений в исходном коде 😨 👉 Java Portal

Указание типа после ключевого слова new — это действительно допустимая конструкция в Java. Об этом и многом другом — в видео 👉 Java Portal

Дженерики в Java (2004) изменили всё. Типобезопасность + гибкость. Сначала вызывали сомнения, теперь — основа коллекций и API
Дженерики в Java (2004) изменили всё. Типобезопасность + гибкость. Сначала вызывали сомнения, теперь — основа коллекций и API.
import java.util.*;

public class GenericsEvolutionDemo {
// До дженериков: отсутствие типобезопасности
    static void withoutGenerics() {
        System.out.println("=== Без дженериков ===");
        List list = new ArrayList(); // необобщённый тип (raw type)
        list.add("Ayush");
        list.add(42); // Ошибка не возникает на этапе компиляции

        for (Object obj : list) {
            try {
                String name = (String) obj; // Исключение ClassCastException во время выполнения
                System.out.println(name);
            } catch (ClassCastException e) {
                System.out.println("Поймана ошибка: " + e);
            }
        }
    }
// С дженериками: типобезопасно и понятно
    static void withGenerics() {
        System.out.println("\n=== С дженериками ===");
        List<String> list = new ArrayList<>();
        list.add("Ayush");
        // list.add(42); // Раскомментировать эту строку вызовет ошибку компиляции

        for (String name : list) {
            System.out.println(name.toUpperCase());
        }
    }
// Пример из реального API: Optional<T>
    static void optionalExample() {
        System.out.println("\n=== Пример Optional<T> ===");
        Optional<String> maybeName = Optional.of("Ayush");
        maybeName.ifPresent(name -> System.out.println("Hello, " + name));
    }

    public static void main(String[] args) {
        withoutGenerics();
        withGenerics();
        optionalExample();
    }
}
👉 Java Portal

👀👀👀 👉 Java Portal
👀👀👀 👉 Java Portal

Тема для освоения программирования на java 👉 Java Portal
Тема для освоения программирования на java 👉 Java Portal

Repost from Техночат
Разыгрываем лучшие гаджеты года: iPhone 16 Pro Max на 256 ГБ, 15-дюймовый MacBook Air 16/256 ГБ и PlayStation 5 Pro! Чтобы их
Разыгрываем лучшие гаджеты года: iPhone 16 Pro Max на 256 ГБ, 15-дюймовый MacBook Air 16/256 ГБ и PlayStation 5 Pro! Чтобы их получить, достаточно подписаться на: • наш канал «Техночат» • И на канал «Больше, чем экономика» Нажимаете после этого на кнопку «Участвовать» и ждёте 2 июля — в этот день в 20:00 по московскому времени рандомайзер выберет трёх победителей. Первый получит айфон, второй — макбук, а третий — PlayStation. Призы бесплатно вышлем в ближайший к вам пункт выдачи СДЭК, поэтому уточните, есть ли он в вашей стране.

Java API Tip Безопасное приведение long к int Используй Math.toIntExact() — этот метод возвращает значение long, но выбрасыва
Java API Tip Безопасное приведение long к int Используй Math.toIntExact() — этот метод возвращает значение long, но выбрасывает ArithmeticException, если оно не помещается в int Без него преобразование произойдёт молча — и ты можешь получить некорректный результат без всяких ошибок. Используй toIntExact, когда важно контролировать переполнение 👉 Java Portal

+3
Держите годноту: подборка полезных шпаргалок по SQL — Основы языка SQL — SQL Joins — Оконные функции — SQL для анализа данных Сохраняем и используем 👉 Java Portal

📚 Эффективное сжатие текста: код Хаффмана в действии Приглашаем на открытый урок. 🗓 11 июня в 20:00 МСК 🆓 Бесплатно. Урок
📚 Эффективное сжатие текста: код Хаффмана в действии  Приглашаем на открытый урок. 🗓 11 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Алгоритмы и структуры данных». На этом вебинаре мы продолжим разработку архиватора, реализовав код Хаффмана.  ✔️ Рассмотрим, как построить дерево кодов, где частота появления символов определяет их битовое представление.  ✔️ Интегрируем алгоритм в наш архиватор и проведем сравнительное тестирование с RLE.  ✔️ Увидим, как эффективно работает код Хаффмана на текстовых файлах и других типах данных.  Отличная возможность изучить продвинутые древовидные структуры данных на практическом примере. Развивайте алгоритмическое мышление, увеличивайте производительность программ. 🎁 Всем участникам вебинара дарим промокод, который дает скидку на обучение - Algo5  👉 Регистрация на вебинар: https://otus.pw/VyBj/ #реклама О рекламодателе

HTTP-концепции, которые должен знать каждый разработчик > HTTP-методы — Определяют действие: GET (получить), POST (создать), PUT (заменить), PATCH (обновить), DELETE (удалить). > Коды статуса — Сообщают, что произошло: 2xx (успех), 4xx (ошибка клиента), 5xx (ошибка сервера). > Заголовки — Пары ключ-значение, которые передают метаинформацию (например, Content-Type, Authorization, Cache-Control). > Тело запроса — Фактические данные, отправляемые в POST/PUT/PATCH-запросах (часто в формате JSON или form-data). > Параметры запроса — Пары ключ-значение в URL после ?, используются для фильтрации, сортировки, поиска. > Параметры пути — Динамические части URL (например, /user/:id), используются для идентификации ресурсов. > Идемпотентность — Повтор одного и того же запроса (например, PUT или DELETE) приводит к одному и тому же результату. > Безопасные методы — Методы, такие как GET и HEAD, которые не должны изменять состояние сервера. > HTTP/1.1 vs HTTP/2 vs HTTP/3 — Новые версии ускоряют работу за счёт мультиплексирования, бинарных фреймов и протокола QUIC. > Keep-Alive — Повторное использование TCP-соединений для нескольких запросов для снижения задержек. > Content-Type — Указывает серверу/клиенту, в каком формате тело запроса (например, application/json). > Accept — Указывает серверу, какие форматы ответа клиент может обрабатывать. > Authorization — Несёт учетные данные (токены, basic auth) для аутентификации запросов. > Кэширование — Использует заголовки вроде Cache-Control, ETag, Last-Modified для снижения нагрузки и задержек. > ETag — Уникальный хеш для версии ресурса; помогает в условных запросах и кэшировании. > Редиректы (3xx) — Инструктируют клиент попробовать другой URL (например, 301, 302, 307). > CORS — Управляет тем, какие источники могут обращаться к вашему API из браузера. > Preflight-запросы — Запросы типа OPTIONS, которые браузер отправляет перед некоторыми CORS-запросами для проверки разрешений. > Туннелирование HTTP-методов — Некоторые прокси пропускают только GET/POST, поэтому PUT/DELETE инкапсулируются через POST + _method. > User-Agent — Заголовок, который браузеры отправляют для идентификации (часто подделывается или изменяется). > Referer — Заголовок, указывающий URL предыдущей страницы (используется в аналитике и безопасности). > Host Header — Указывает домен, на который направлен запрос (важен при виртуальном хостинге). > Connection Header — Управляет поведением соединения (например, close, keep-alive). > HEAD-метод — Как GET, но возвращает только заголовки (без тела); полезен для проверки ресурсов. 👉 Java Portal

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

Это просто огонь. В одном из следующих релизов jetbrains / intellijidea появится фича, которая позволяет в пару кликов сгенерировать JPA-энтити из существующей схемы БД И ещё, мне сказали, что SpringData JDBC тоже скоро завезут 💪 👉 Java Portal

👨‍💻 Эти каналы реально помогают в изучении программирования и IT Не веришь? Проверь сам: 👩‍💻 Easy GitHub — лучшие репозитории с гитхаба для практики и освоения IT. 🌐 Easy WebDev — всё про Frontend, Backend и сопутствующие технологии. 🖥 Easy Python — лёгкое изучение самого универсального языка в мире. 🔠 Easy InfoSec — ИБ, хакинг, OSINT, анонимность, пентест и многое другое. 🖥 Easy Coder — а здесь вообще про всё, что нужно знать для работы в IT.
🖱 Просто выбери нужное и получай топовые материалы каждый день!

Ставить @Transactional везде подряд плохая практика — сначала разберись, когда он действительно нужен: 🔸Использовать @Transa
Ставить @Transactional везде подряд плохая практика — сначала разберись, когда он действительно нужен: 🔸Использовать @Transactional только в сервисном слое — Отделяет бизнес-логику от веб-логики 🔸Использовать транзакции на уровне методов — Даёт точный контроль и ясность 🔸Использовать @Transactional(readOnly = true) — Оптимизирует операции только для чтения 🔸Избегать @Transactional в репозиториях — Репозитории не должны управлять транзакциями 🔸Оставлять транзакционные методы public — Необходимо для работы Spring-прокси 🔸Логировать или отслеживать поведение транзакций — Помогает выявлять неожиданные проблемы 👉 Java Portal

Нашёл годную визуализацию для тех, кто хочет на пальцах понять, как устроены LLM. Тут можно не просто почитать про слои моделей, а буквально пощупать их, покрутить со всех сторон в 3D Есть GPT-2, nanoGPT, GPT-2 XL и GPT-3 Лучше запускать с компа, на мобиле не так красиво 👉 Java Portal

Релиз через два дня. Код готов. Почти... Остались тесты. Ну, точнее — покрытие. Потому что QA уже дышит в затылок, а ты сидиш
Релиз через два дня. Код готов. Почти... Остались тесты. Ну, точнее — покрытие. Потому что QA уже дышит в затылок, а ты сидишь и выбираешь: спать или корпеть до утра. Explyt Test умеет создавать тесты под твой код — сам. Быстро. В IDE. Без плясок. Хочешь, чтобы релиз прошёл, а не пролетел? Попробуй бесплатно! 👉 explyt.ai

10 однострочников на Java, с которыми ты выглядишь более опытным 🔸Поменять две переменные местами > a = a + b - (b = a); 🔸С
10 однострочников на Java, с которыми ты выглядишь более опытным 🔸Поменять две переменные местами > a = a + b - (b = a); 🔸Создать список > List.of("Apple", "Banana", "Cherry"); 🔸Найти максимум из двух чисел > Math.max(a, b); 🔸Прочитать все строки из файла > Files.readAllLines(Path.of("file.txt")); 🔸Объединить список в строку > String.join(", ", fruits); 🔸Удалить null-значения > list.removeIf(Objects::isNull); 🔸Получить случайный элемент > list.get(new Random().nextInt(list.size())); 🔸Посчитать совпадения > list.stream().filter(x -> x > 10).count(); 🔸Отсортировать по убыванию > list.sort(Comparator.reverseOrder()); 🔸Проверить палиндром str.equals(new StringBuilder(str).reverse().toString()); 👉 Java Portal