13937
Обучающий канал по Java Ссылка для друга - https://t.me/+ZEYYht6-46w5MDM6 По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Java_per_month
💪 Мощный инструмент в одной строке: Метод of()
Метод of() обеспечивает компактный способ создания неизменяемых коллекций.
🗣️ Этот метод является удобным и эффективным инструментом для создания коллекций с набором известных элементов.
Java Learning 👩💻
⚡️ Квиз на знание Java
Пройти тестирование — сложно! А ты справишься?
21 вопрос, 30 минут
Проверь себя - пройди квиз и оцени свой уровень навыков, а также свою готовность к обучению на курсе — «Разработчик на Spring Framework» от OTUS.
💻 За 5 месяцев обучения ты освоишь современные возможности Spring, научишься быстро проходить путь от идеи до production-grade, создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке.
👉 ПРОЙТИ ТЕСТ: https://clck.ru/3LotdK
Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене! И еще дарим промокод SPRING5
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ Сила коллекций: Неизменяемые коллекции в Java
Java 10 ввела полезную возможность создания неизменяемых копий коллекций с помощью новых методов copyOf.
✔️ Эти методы предоставляют простой способ создания неизменяемых представлений существующих коллекций, улучшая безопасность и надежность кода.
Java Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
a == b — false, потому что b — новый объект в куче.
a == c — true, потому что строковые литералы из пула строк указывают на один объект.
Есть фича. Есть дедлайн. Есть понимание, что тесты надо писать… но они отъедают время, которого итак впритык.
Один наш знакомый девелопер сказал: «С тех пор как поставил Explyt Test — начал писать меньше тестов… но покрытие стало лучше. Как это вообще возможно?!»
Попробуйте сами. Плагин сам предлагает тесты для вашего кода — прямо в IDE.
👉 explyt.ai — сэкономь себе пару часов уже сегодня.
⚙️ System.identityHashCode()System.identityHashCode() возвращает хеш-код объекта, основанный на его реальном адресе в памяти, независимо от переопределения hashCode(). Это полезно для диагностики, дебага, трекинга объектов и работы с объектами, у которых переопределён hashCode() нестандартным образом
Java Learning 👩💻
🤖 Хотите автоматизировать инфраструктуру для тестирования прямо в Gradle?
На открытом уроке «Облако в кармане: запускаем всю инфраструктуру для теста при сборке» от OTUS мы расскажем, как избежать ручных настроек и запусков. Вместо этого вы научитесь автоматизировать весь процесс с помощью Docker, DockerCompose и TestContainers, интегрируя их с Gradle.
Урок полезен для разработчиков на Kotlin и Java, которые работают с автотестами — интеграционными и end-to-end.
В ходе урока вы освоите:
▫️Автоматический запуск всей необходимой инфраструктуры для тестирования.
▫️Создание Docker-образов для тестов и деплоя.
▫️Разработку автотестов, которые поднимут ваши навыки на новый уровень.
Участники получат скидку на курс «Kotlin Backend Developer. Professional».
➡️ Встречаемся 29 апреля в 20:00 МСК, регистрация открыта: https://otus.ru/lessons/kotlin/?utm_source=telegram&utm_medium=cpc&utm_campaign=kotlin&utm_term=Java_per_month&utm_content=lesson_29-04-2025_usp-universal_kotlin_text_no-headline_aida_long_aibanner_lesson-banner_blue_standart#event-5714
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🚫 Антипаттерн недели: Нарушение принципа инкапсуляции через public поля
В Java открытие полей класса как public — плохая практика. Это нарушает инкапсуляцию и делает объект уязвимым к неконтролируемым изменениям извне.
✔️ Используйте private поля и getter/setter-методы для доступа и контроля над значениями.
Java Learning 👩💻
👩💻 Разработка на Java требует глубокого понимания не только языка, но и принципов работы JVM, многопоточности и современных фреймворков.
Курс «Java Developer. Professional» — это структурированное обучение для разработчиков, которые хотят выйти на новый уровень, освоить актуальный стек технологий и уверенно претендовать на позиции уровня Middle+.
🦾 Вы получите 96 часов практической работы, обучение на живых вебинарах, вы разберете ключевые аспекты работы JVM, научитесь строить эффективные многопоточные приложения, освоите Spring WebFlux, Kafka, реактивный Postgres и Kubernetes.
Программа OTUS постоянно обновляется, соответствуя требованиям рынка, а диплом ценится работодателями.
👉 Пройдите вступительное тестирование и присоединяйтесь к группе: https://clck.ru/3LcZiv
🎁 Начните обучение со скидкой, подробности у менеджеров. ПРОМОКОД: JAVA_04
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ Class.getNestMembers()Class.getNestMembers() возвращает массив всех классов, принадлежащих одной «группе вложенности» (nest) — то есть тех, кто может делиться приватными методами и полями друг с другом. Это полезно для анализа доступа между вложенными классами и для инструментов байткод-анализа.
Java Learning 👩💻
Бесплатный урок по Apache Kafka⭐️
Учим работать с реальными исходными данными, а не на теоретических примерах.
✅Расскажем про язык Кафки: топики, партиции, продюсеры-консьюмеры, кластер, ноды.
✅Рассмотрим: как работают очереди сообщений, сколько должно быть консьюмеров для эффективной вычитки, как повысить надёжность кластера с помощью репликации данных.
✅Покажем, как развернуть кластер Кафки на своём ПК с 3 нодами, schema-registry и авторизацией.
Обычно в инструкциях кластер из 1 ноды, зукипера и 1 брокера, но это не наш путь, смотрим сразу на практике.
Забрать урок👉🏻 в боте
⚙️ Pattern.asPredicate()Pattern.asPredicate() превращает регулярное выражение в Predicate<String>, который можно использовать прямо в потоках (Stream). Это полезно для фильтрации строк без явного вызова .matches().
Java Learning 👩💻
☄️ Интеграционное тестирование | Spring Boot + Yandex SourceCraft + Amplicode + Docker Compose Starter
В новом видео вы узнаете, как писать интеграционные тесты быстро и эффективно, совмещая сильные стороны нескольких инструментов.
Мы покажем, как использовать генерацию кода от Amplicode учитывающую контекст всего приложения и дополнить её точечной генерацией от Yandex SourceCraft Code Assistant, а также быстро настроить окружение для тестов с помощью не так давно появившегося Docker Compose стартера.
⚡️СМОТРЕТЬ НА YOUTUBE
⚡️СМОТРЕТЬ В VK ВИДЕО
⚡️СМОТРЕТЬ НА RUTUBE
#реклама
О рекламодателе
⚙️ Collections.nCopies()Collections.nCopies() создаёт неизменяемый список, содержащий заданное количество копий одного и того же объекта. Это полезно для инициализации, заглушек и создания шаблонных коллекций.
Java Learning 👩💻
👩💻 JDBC — ваш швейцарский нож для работы с данными
Приглашаем на открытый урок.
🗓 22 апреля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional».
О чём поговорим:
✔️Основы JDBC: что это такое, зачем нужно и как работает
✔️Практические примеры выполнения сложных запросов
✔️Работа с транзакциями и обработка ошибок в JDBC
✔️ Оптимизация производительности при работе с данными через JDBC
Кому будет интересно:
Вебинар будет полезен разработчикам, инженерам по базам данных и архитекторам ПО, стремящимся улучшить навыки работы с базами данных и оптимизировать взаимодействие с данными.
В результате урока:
Вы научитесь эффективно использовать JDBC для работы с базами данных и сможете применять полученные знания в реальных проектах
🔗 Ссылка на регистрацию: https://clck.ru/3LUYuy
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🌐 Настройка HTTP-прокси в Java
Этот код настраивает HTTP-прокси для Java-приложения, устанавливая адрес, порт, имя пользователя и пароль прокси-сервера.
✔️ Это позволяет направлять запросы через прокси для обхода ограничений или повышения безопасности.
Java Learning 👩💻
⚙️ Оптимизация сборщика мусора с помощью -XX:+UseG1GC
Java предоставляет множество возможностей для оптимизации производительности приложений.
✔️ Одной из таких возможностей является использование современного сборщика мусора G1 (Garbage First), который улучшает работу приложений с большим объемом данных и снижает задержки.
➡️ Чтобы включить использование G1GC, необходимо добавить флаг -XX:+UseG1GC при запуске Java-приложения:
java -XX:+UseG1GC G1GCExample
🤖 А ты справишься с тестом по Kotlin?
🏆 Пройди тест из 10 вопросов, проверь свой уровень знаний и получи скидку на онлайн-курс «Kotlin Backend Developer. Professional» от OTUS!
Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене! И еще дарим промокод Kotlin5
🎫 Курс можно приобрести в рассрочку
➡️ Пройти тест и забрать скидку: https://otus.ru/lessons/kotlin/assessment/?utm_source=telegram&utm_medium=cpm&utm_campaign=kotlin&utm_term=Java_per_month&utm_content=headline_29-04-2025_usp-universal1_android_text_no-headline_aida_short_photogram_banner-test_green_standart
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ Class.getPermittedSubclasses()Class.getPermittedSubclasses() возвращает список всех классов, которым разрешено наследовать sealed-класс. Это полезно для анализа и валидации иерархий sealed-типов во время выполнения, особенно в плагин-системах и фреймворках.
Java Learning 👩💻
⚙️ Integer.rotateLeft()Integer.rotateLeft() выполняет циклический сдвиг битов числа влево. Это полезно для создания быстрых хеш-функций, криптографии и некоторых алгоритмов работы с битами
Java Learning 👩💻
➡️ Строковые шаблоны (Preview)
Строковые шаблоны (string templates) — новая функция в режиме preview, упрощающая создание строк с вычисляемыми значениями.
🗣️ Ранее используемая в Java конкатенация приводила к сложному коду, тогда как строковая интерполяция в других языках сокращает код, но увеличивает риски безопасности.
ℹ️ Шаблонные выражения сочетают лаконичность интерполяции и высокую безопасность.
String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan"); // true
STR и встроенное выражение {name}, которое может включать строки, арифметику, методы и поля. Обработчики выполняются динамически и обеспечивают безопасность кода. Шаблоны не работают без обработчика, отвечающего за интерполяцию и валидацию.
⚙️ Class.isSynthetic()Class.isSynthetic() возвращает true, если класс был создан компилятором и не существует в исходном коде напрямую. Это полезно для анализа байткода, фреймворков и генераторов кода, особенно при работе с лямбдами, вложенными классами и bridge-методами
Java Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Статический блок выполняется один раз при первом обращении к классу.
Блок инициализации экземпляра {} выполняется перед каждым вызовом конструктора, при создании объекта. Поэтому: один static, два instance, два constructor.
⚙️ Class.isHidden()Class.isHidden() проверяет, является ли класс скрытым — то есть загруженным как временный или внутренний, без явного имени в classpath. Это полезно при работе с динамической генерацией байткода, шейпингом JIT-классов и JVM-инструментами.
Java Learning 👩💻
ClassLoader.getResources()ClassLoader.getResources() находит все ресурсы с указанным именем в classpath и возвращает Enumeration<URL>. Это полезно для загрузки всех версий конфигурационных файлов, плагинов или ресурсов из JAR-файлов и папок одновременно
Java Learning 👩💻
⚙️ System.gc() + System.runFinalization()
Хотя явно вызывать сборку мусора в Java не рекомендуется, комбинация System.gc() и System.runFinalization() может быть полезна в тестах, профилировании и при ручном контроле над ресурсами во время разработки
Java Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Java кэширует объекты Integer от -128 до 127. Переменные a и b указывают на один объект из пула, поэтому a == b → true. Значение 200 вне диапазона, c и d — разные объекты → false.
⚙️ Class.getRecordComponents()Class.getRecordComponents() возвращает информацию о компонентах записи (record). Это полезно для рефлексии, сериализации и автоматического отображения данных в Record-классах.
Java Learning 👩💻
Collections.disjoint()Collections.disjoint() проверяет, не имеют ли две коллекции общих элементов. Это полезно для фильтрации, сравнения и оптимизации поиска пересечений.
Java Learning 👩💻
Math.abs()Math.abs() возвращает абсолютное значение числа (модуль). Это полезно для работы с расстояниями, разницей между числами и при математических вычислениях.
Java Learning 👩💻