Изучаем Java. По вопросам сотрудничества: @seniorvladislav
🎯 Весь фокус на API — решай реальные задачи и побеждай с Платформой API ВТБ!
Когда: 21 октября — 23 ноября 2024
Формат: гибридный (онлайн и офлайн)
Призовой фонд: 2 млн рублей
🔥 Хакатон подойдёт для тебя, если ты:
– Студент или выпускник технического вуза;
– Backend / Frontend-разработчик;
– Аналитик;
– Архитектор;
– Специалист в области ИБ;
– DevRel.
❗️Выбери свой трек:
• Open API. Создание приложений на основе Open Banking API;
• gRPC. Реализация микросервиса, имплементирующего стандарты СТО БР ФАПИ.СЕК с реализацией на протоколе gRPC;
• Единая платформа аутентификации API. Создание новых подходов к мультифакторной аутентификации.
Прими участие в составе команды или индивидуально. Если нет команды — поможем её собрать!
▶️ Регистрация уже открыта! Подай заявку до 5 ноября, 23:59 МСК по ссылке.
⁉️Хотите повысить свою квалификацию в Java-разработке?
👩💻 Инвестируйте в успех своей карьеры прямо сейчас! На курсе «Java Developer. Professional» вы получите:
✔️ знание актуального стека технологий;
✔️ 96 часов практической работы с детальным разбором технологий изнутри;
✔️ понимание основ функционирования JVM (сборка мусора, byteCode);
✔️ освоение приемов применения многопоточности;
✔️ практику решения сложных задач с подробным код-ревью от экспертных Java-разработчиков;
✔️ расширение возможностей использования языка Java;
- умение использовать современные фреймворки: Spring WebFlux, Kafka, реактивный Postgres, Kubernetes.
Вы получите инструменты и знания, которые помогут вам писать код быстрее и чище. Все практические навыки вы сможете незамедлительно применять в своей работе.
Готовы прокачать свою востребованность?
➡️ Пройдите короткий тест прямо сейчас, чтобы получить специальную цену на обучение: https://otus.pw/QpOG/
🎁 А еще приятный бонус: до конца октября действует скидка 10% на обучение.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Шаблон проектирования: Chain of Responsibility
Данная статья будет полезна начинающим Java разработчиком понять зачем нужен шаблон проектирования «Цепочка ответственности» и как его можно использовать на примерах.
Итак начнем с самого начала. Основная суть данного шаблона: связывание объектов‑получателей в цепочку и передача запроса по ней.
Смотреть статью
Может ли имя класса не совпадать с именем файла?
Компилятор требует, чтобы в .java файле был не больше чем один публичный класс верхнего уровня, и чтобы его название совпадало с названием файла. Все специальные символы также должны быть в имени файла.
Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.
Так что ответ – может.
Манипуляции с байт-кодом Java
В этой статье мы разберём, как добавить к файлу класса публичный атрибут. Когда загрузчик классов завершит загрузку модифицированного файла класса, мы увидим то поле, которое добавили вручную.
Смотреть статью
Шпаргалка по Spring для Java Junior уже доступна в бесплатной библиотеке от FAANG School.
Только в течение 24 часов вы можете получить доступ:
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков
Из свежих пополнений – Инструкция по работе с Git (ключевой навык для любого разработчика!)
Библиотека знаний постоянно пополняется, но бесплатный доступ длится всего сутки. Чтобы получить полезные материалы, переходи по ссылке и жми на оранжевую кнопку.
⚙️ Более эффективная работа с коллекциями
Java предоставляет множество мощных инструментов для работы с коллекциями. Одним из них является Collectors.partitioningBy
, который позволяет разделить элементы потока на две группы на основе заданного предиката.
➡️ Эта функция упрощает обработку и классификацию данных.
➡️ Использование Local-Variable Type Inference
✔️ Функция Local-Variable Type Inference позволяет объявлять локальные переменные без явного указания их типа, что делает код более компактным и улучшает его читаемость
➡️ Мощь статических методов: Использование методов интерфейсов
✔️ В Java 8 была введена возможность определения статических методов в интерфейсах, что открыло новые возможности для создания удобных и мощных утилитарных функций прямо в интерфейсах.
🗣В интерфейсе ListUtils
определен статический метод max, который находит максимальный элемент в коллекции.
🗣В методе main
мы вызываем статический метод max из интерфейса ListUtils
, передавая ему список чисел.
🗣Мы выводим найденное максимальное число на экран.
✔️ Использование Flow API для реактивного программирования
Java 9 представила Flow API, который обеспечивает стандартный интерфейс для реализации реактивного программирования.
🗣️ Flow API позволяет создавать асинхронные, нелокальные потоки данных, упрощая работу с реактивными системами.
Yandex Cloud запустил сервис для ускорения разработки продуктов в облаке Yandex Serverless Integrations
Теперь разработчики смогут при минимальном написании кода автоматизировать различные процессы, например обработку онлайн-заказов и мониторинг систем безопасности.
Сделать это можно благодаря инструменту Yandex Workflows — он позволяет описать последовательность операций с помощью декларативного языка YAML. Сервис автоматически запустит эти процессы и проконтролирует их выполнение.
Помимо этого, Yandex Serverless Integrations включает в себя инструменты EventRouter для передачи событий между сервисами и API Gateway для создания шлюзов между внешними и облачными сервисами по спецификации OpenAPI 3.0.
Читайте подробнее в статье
♨️ Анализировать множество показателей и не перегружать приложение?
С Java Flight Recorder – это легко.
Приглашаем вас на открытый урок «Обзор инструмента Java Flight Recorder».
🗓 22 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от OTUS.
JFR:
- Регистрирует множество событий внутри виртуальной машины Java
- Не ухудшает производительность
- Помогает детально разобраться в причинах сбоев и ошибок
Хотите освоить? - приходите на вебинар!
Спикер – Александр Царёв, техлид в Сбере.
🔗 Ссылка на регистрацию: https://otus.pw/gQih/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
➡️ Использование метода Objects::isNull
для удобной проверки на null
Начиная с Java 7, был добавлен метод Objects.isNull()
, который позволяет более читаемо проверять объекты на null
. Это полезно для улучшения читаемости кода, особенно когда нужно часто проверять переменные на null в сложных конструкциях.• Objects.isNull()
помогает сделать код более выразительным и упрощает проверку объектов, избегая громоздких условных операторов.
➡️ Использование метода String::strip
для удаления пробелов
Начиная с Java 11, был добавлен метод String.strip()
, который удаляет пробелы в начале и в конце строки. В отличие от trim()
, он корректно работает с символами пробела, определёнными в Unicode, что делает его более универсальным.• String.strip()
полезен для работы с текстовыми данными, где необходимо гарантированно удалить пробелы в соответствии с международными стандартами Unicode.•
Этот метод также предоставляет аналоги для удаления только ведущих или завершающих пробелов: stripLeading()
и stripTrailing()
.
➡️ Использование метода Collectors.filtering()
для фильтрации элементов при сборе в коллекцию
Начиная с Java 9, метод Collectors.filtering()
позволяет фильтровать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно собирать только определённые элементы, не прибегая к дополнительным фильтрациям на этапе потока.• Collectors.filtering()
делает код более лаконичным, предоставляя встроенный способ фильтрации элементов в процессе их коллекционирования.•
Этот метод позволяет объединять фильтрацию и сбор данных в одну операцию.
#вопросы_с_собеседований
Можно ли указывать конструктор внутри Enum?
Да, конечно. Именно через конструктор и задаются значения внутренних переменных enum.
В качестве примера добавим два поля — ageFrom и ageTo — чтобы обозначить возрастные рамки для каждой роли.
#вопросы_с_собеседований
Что такое Map.of()?
Map.of() — это метод, представленный в Java 9, который позволяет разработчикам создавать неизменяемый Map, содержащий до десяти пар ключ-значение. Он обеспечивает удобный и лаконичный способ создания Map без необходимости написания большого количества кода.
Map.of() является улучшением по сравнению с предыдущим способом создания небольших Map с использованием конструктора класса HashMap, который может быть довольно громоздким и многословным.
🦾 Ты крутой джавист? Всегда есть куда расти.
Приходи повышать грейд на хардовый курс «Разработчик на Spring Framework» от OTUS.
👩💻 Авторская программа, с ней ты освоишь владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5). Получишь умение быстро проходить путь от идеи до production-grade.
🗓 6 ноября в 20:00 мск., пройдет бесплатный открытый урок курса, тема «Spring - разбор (не)стандартных вопросов интервью»
🔗 Ссылка на регистрацию: https://otus.pw/KYOu/
Будет интересно!Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Amplicode учит вашу IDE говорить на языке Spring Boot!
Amplicode – многофункциональный плагин для IntelliJ IDEA Community и Ultimate, упрощает и ускоряет работу с технологиями Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct и т.д.
Основные возможности
⚡ Навигация по проекту согласно архитектуре Spring приложения
⚡ Создание объектов сразу в терминах фреймворка вместо Java классов: контроллеры, репозитории, сервисы, сущности, события, DTO, мапперы и т.д.
⚡ Палитра и инспектор, позволяющие видеть опции, доступные разработчику в текущем контексте
⚡ Умные инжекции, подсказки и исправление ошибок
Это малая часть того, на что способен Amplicode. В настоящий момент возможности доступны абсолютно бесплатно!
Сделано с любовью к разработчикам командой, создавшей суперпопулярный плагин JPA Buddy ❤️
Попробовать Amplicode
Посмотрите как Amplicode помогает разрабатывать на Spring Boot в IntelliJ IDEA!
#реклама
О рекламодателе
Какие логические операции и операторы вы знаете?
• &
: Логическое AND (И);
• &&
: Сокращённое AND;
• |
: Логическое OR (ИЛИ);
• ||
: Сокращённое OR;
• ^
: Логическое XOR (исключающее OR (ИЛИ));
• !
: Логическое унарное NOT (НЕ);
• &=
: AND с присваиванием;
• |=
: OR с присваиванием;
• ^=
: XOR с присваиванием;
• ==
: Равно;
• !=
: Не равно;
• ?:
: Тернарный (троичный) условный оператор.
#вопросы_с_собеседований
Можно ли использовать строки в конструкции switch?
Да, начиная с Java 7 в операторе switch можно использовать строки, ранние версии Java не поддерживают этого. При этом:
• участвующие строки чувствительны к регистру;
• используется метод equals() для сравнения полученного значения со значениями case, поэтому во избежание NullPointerException стоит предусмотреть проверку на null.
• согласно документации, Java 7 для строк в switch, компилятор Java формирует более эффективный байткод для строк в конструкции switch, чем для сцепленных условий if-else.
💪 Мощный инструмент в одной строке: Метод of()
Метод of()
обеспечивает компактный способ создания неизменяемых коллекций.
🗣️ Этот метод является удобным и эффективным инструментом для создания коллекций с набором известных элементов.
♨️ Анализировать множество показателей и не перегружать приложение?
С Java Flight Recorder – это легко.
Приглашаем вас на открытый урок «Обзор инструмента Java Flight Recorder».
🗓 22 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от OTUS.
JFR:
- Регистрирует множество событий внутри виртуальной машины Java
- Не ухудшает производительность
- Помогает детально разобраться в причинах сбоев и ошибок
Хотите освоить? - приходите на вебинар!
Спикер – Александр Царёв, техлид в Сбере.
🔗 Ссылка на регистрацию: https://otus.pw/gQih/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Работать ручным тестировщиком круто: можно проверять нестандартные сценарии или поставить себя на место реального пользователя. Но если хочется чего-то большего и ускорить работу над рутинными тест-кейсами — самое время автоматизировать часть задач. Не знаете программирование? Мы научим.
Приходите в Яндекс Практикум на курс «Автоматизатор тестирования на Java» — за 5 месяцев освоите инструменты автоматизации, основы Java и научитесь покрывать автотестами веб-приложения и API.
И не спешите покупать курс — попробуйте бесплатный модуль, а уже потом решите, хотите развиваться в этом направлении или нет.
✔️ Использование Collectors.teeing для объединения потоков
Java 12 представила новый метод Collectors.teeing
, который позволяет объединить результаты двух различных коллекторов в один итоговый результат.
🗣️ Эта возможность значительно упрощает обработку сложных потоков данных.
➡️ Сила коллекций: Неизменяемые коллекции в Java
Java 10 ввела полезную возможность создания неизменяемых копий коллекций с помощью новых методов copyOf.
✔️ Эти методы предоставляют простой способ создания неизменяемых представлений существующих коллекций, улучшая безопасность и надежность кода.
➡️ FEST-Assert — мощная библиотека для упрощения тестирования
FEST-Assert — это библиотека для Java, которая значительно упрощает процесс написания тестов, делая их более выразительными и читаемыми. Она предоставляет удобные и цепочные методы для утверждений, позволяя разработчикам писать тесты, которые легко понимать и поддерживать.
🗣 Если вы хотите сделать свои тесты более читаемыми и выразительными, FEST-Assert — отличный выбор. Эта библиотека упрощает написание тестов и делает их более интуитивно понятными.
🔗 Ссылочка на доку
Хотите научиться разрабатывать парсеры pdf-файлов и создавать полезные приложения?
Приглашаем на открытый урок «Разработка парсера pdf-файла».
🗓 24 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional»
На вебинаре разберем:
- как разработать парсер для выписки ВТБ банка в формате pdf;
- весь путь от идеи до практического применения;
- ответы на все возникающие вопросы.
⬇️ В результате урока вы получите практически полезное приложение с подробностями реализации.
Спикер Сергей Петрелевич — опытный Java/Kotlin-разработчик и преподаватель.
Все участники вебинара получат специальную цену на обучение!
🔗 Ссылка на регистрацию:https://otus.pw/UWDd/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚡️ До конца регистрации на хакатон MORE.Tech от ВТБ остался всего 1 день! Успей подать заявку!
Когда: 11-26 октября 2024
Формат: гибридный (онлайн и офлайн)
Призовой фонд: 1,5 млн рублей
🔥 Хакатон подойдёт для тебя, если ты:
– Студент или выпускник технического вуза;
– Backend / Frontend-разработчик;
– Аналитик;
– Проектный менеджер;
– UX/UI-дизайнер;
– Блокчейн-разработчик (Solidity);
– Специалист в области ИБ.
❗️Выбери свой трек:
1. Озеро данных: большие данные, обработка, хранение и анализ с использованием современных технологий.
2. NFT: система верифицированных достижений и сертификатов на основе блокчейн-токенов.
3. Vault: разработка безопасной системы хранения данных, аналог известного решения Vault от Hashicorp.
▶️ Успей подать заявку до 17 октября, 23:59 МСК по ссылке.
#реклама
О рекламодателе
Ищем автора эталонного кода! 💎
Если вы уверены, что вашему коду подходит звание «Эталонный», а вам — звание «Автор самого красивого кода», то приглашаем принять участие в Конкурсе красоты кода 2.0 и выиграть классные призы от Сбера: iPhone 16 и умную колонку SberBoom.
Опытные эксперты определят победителей в пяти категориях: Backend, Frontend, DevOps, AI и Mobile, — а награждение пройдёт на ключевом IT-событии HighLoad в Москве, 2 и 3 декабря.
Больше 40 участников прошлого конкурса стали частью команды Сбера. Возможно, следующим станете именно вы — переходите по ссылке и изучайте подробности!