Можно ли подружить Stream API и JPA?
В этой статье я хотел бы познакомить сообщество с библиотекой JPAstreamer. Идея этой библиотеки очень проста, но в то же время гениальна - получать нужные нам сущности из бд так, как если бы мы просто обрабатывали поток сущностей в стриме.
👉@BookJava
Рано или поздно специалист хочет начать преподавать
🚀 19 октября 18:00, наши друзья из OTUS, приглашают вас на бесплатную масштабную образовательную онлайн-конференцию для IT-специалистов, которые хотят делиться своей экспертизой.
Join OTUS Conf — это онлайн-конференция для IT-специалистов, которые уже преподают или только присматриваются к преподаванию
Вы узнаете:
✤ Почему OTUS — это Uber для тех, кто хочет заниматься преподаванием
✤ Чем live занятия лучше, чем записанное видео
✤ Как организован онбординг OTUS и какую атмосферу мы создали для IT-экспертов
💡На конференции будет несколько спикеров (Yum! Brands, 1С-Старт и др.), которые поделятся своим опытом и фишками.
👉Регистрируйтесь по ссылке и приглашайте коллег!
Какая проблема возникнет с этим кодом?
Ответ: Данный код не с компилируется.
Этот вопрос на знание иерархии исключений, в данном случае FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения и в следующий блок catch управление не будет передано.
@java_geek
🎥 JEP Café
Java Asynchronous Programming Full Tutorial with Loom and Structured Concurrency #13
Launching 10 millions virtual threads with Loom #12
Java 19 Virtual Threads #11
Leverage Java 17 New Features to Create Your Wordle Checker #10
Refactoring Java 8 code with Java 17 new features #9
Records Patterns, Performance and Serialization #8
String Concatenation #7
Factory Methods for Collections #6
Text Blocks #5
The Packaging Tool aka jpackage #4
Switch Expressions #3
Sealed Classes #2
What is a JEP? #1
Все видео доступны на youtube
👉@BookJava
Научитесь правильно использовать DevOps-инструменты
13–15 октября в Слёрм пройдет практический курс «DevOps Tools для разработчиков». И вот, что нужно знать о нём:
🔹 Это три дня, насыщенные теорией и практикой. Занятия будут проходить с 10 до 18 часов по мск. Вы посмотрите презентации спикеров и демонстрацию практики, зададите вопросы и оперативно получите ответы на них.
🔹 Это новый формат. Вы сможете выполнять задания в удобном ритме, не привязываясь к жестким временным рамкам. Стенды доступны в течение двух лет.
🔹 Это практическая польза. Вы поймёте устройство интеграций и сможете применять знания на любом языке программирования.
Учебная программа интенсива построена вокруг нескольких сервисов приложения. Мы вместе пронесём его через все интеграции до успешного деплоя и разберём best practice.
Кто спикеры
На интенсиве будут два спикера — Владислав Килин, техлид, и Кирилл Борисов, Infrastructure Engineer технологического центра Deutsche Bank. Влад из разработки, Кирилл из администрирования 😎
Спикеры объяснят, почему разработчику важно уметь использовать DevOps-инструменты, поделятся личными кейсами и лайфхаками.
Посмотреть подробную программу и записаться 👉 https://slurm.club/3edriTM
Настраиваем память JVM-приложения в Kubernetes
Друзья, всем привет! Как известно, в Kubernetes у каждого pod’а есть ограничение на использование памяти (limits.memory), и, как показывает опыт, далеко не всегда очевидно, как JVM-приложение интерпретирует эту настройку, что порой может приводить к OOMKill.
Я хотел бы поделиться одним из способов настройки памяти для Java-приложений в Kubernetes. Сразу скажу, что итоговые настройки, к которым мы придём, будут приведены лишь в качестве примера и должны настраиваться индивидуально под каждое приложение. Рассматривать будем настройки и метрики обычного микросервиса на Spring boot, интегрированного со Spring Boot Admin (далее просто SBA).
👉@BookJava
В каком случае может быть потерян элемент в HashMap?
Допустим, в качестве ключа используется не примитив, а объект с несколькими полями. После добавления элемента в HashMap у объекта, который выступает в качестве ключа, изменяют одно поле, которое участвует в вычислении хэш-кода. В результате при попытке найти данный элемент по исходному ключу, будет происходить обращение к правильной корзине, а вот equals уже не найдет указанный ключ в списке элементов. Тем не менее, даже если equals реализован таким образом, что изменение данного поля объекта не влияет на результат, то после увеличения размера корзин и пересчета хэш-кодов элементов, указанный элемент, с измененным значением поля, с большой долей вероятности попадет в совершенно другую корзину и тогда уже потеряется совсем.
👉@BookJava
Стоит ли учить Java в 2022 году? Так ли хорош Java в качестве первого языка для изучения программирования? Какие карьерные перспективы ждут Java-разработчиков?
11 октября в 19.00 по мск образовательная платформа Хекслет приглашает всех, кто делает первые шаги в Java или только задумывается о профессии, на бесплатный карьерный мастер-класс!
Поговорим о сфере применения языка и задачах, которые предстоит решать. Порассуждаем, где учиться и почему не всем нужна «вышка» в IT.
Расскажем о специфике программы по Java-разработке в Хекслете. Затронем тему поиска первой работы.
Дадим лайфхаки от студентов — как собрать портфолио, не имея опыта коммерческой разработки.
✅ Q&A сессия
Ответим на ваши вопросы. Вышлем «Карту компетенций начинающего разработчика» всем участникам мероприятия, подарим бонусы для воодушевляющего старта!
Жмите по ссылке и записывайтесь!
Создание пользовательских аннотаций в Java
В этой статье объясняется, как создавать мета- и пользовательские аннотации и украшать ими объекты.
👉@BookJava
Java from EPAM. Учебно-методическое пособие
Блинов, Романчик (2020)
Пособие предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и ХМL. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
Скачать
👉 @java_360
⁉️ Хотите изучать алгоритмы? Приходите на открытый урок «Создание ассоциативного массива» 13 октября в 20:00 мск.
💻 На занятии мы начнем реализовывать популярную структуру данных «ассоциативный массив» для хранения пар (ключ, значение), рассмотрим алгоритмы для решения этой задачи и сравним их эффективность:
✔️ Параллельные массивы
✔️ Отсортированные массивы
✔️ Двоичные деревья поиска
👉 Занятие проведет Евгений Волосатов — ведущий программист с 20-летним опытом. Урок проводится в рамках онлайн-курса «Алгоритмы и структуры данных». Используйте эту возможность, чтобы попробовать обучение и познакомиться с экспертом.
🔥 Для регистрации пройдите вступительный тест
Курс по корутинам
#1 Что такое корутина. Важные особенности
#2 CoroutineContext. Настраиваем корутины
#3 Жизненный цикл корутины. CoroutineScope. Structured Concurrency
#4 Обработка ошибок в корутинах
#5 Каналы. Зачем если есть Flow?
#6 Синхронизация между корутинами
#7 Kotlin Coroutines Flow. StateFlow. SharedFlow
#8 Корутины в Android. Специальные API
www.youtube.com/playlis…playlist
✍️ @kotlin_lib
Bit Set
Что, если нам нужно выполнить какие-то операции с массивами битов? Вы будете использовать для этого boolean[]?
Для этого есть более эффективный с точки зрения использования памяти метод.
Это класс BitSet, позволяющий нам хранить массивы битов и манипулировать ими. По сравнению с boolean[] он требует в 8 раз меньше памяти. Мы можем выполнять логические операции над массивами, такими как, например and, or, xor.
Допустим, у нас есть два входных массива битов. Мы хотим провести на них операцию xor.
Уточню, операция xor, возвращает только те элементы, которые имеются только в одном массиве, но не в другом. Для этого нам нужно создать два экземпляра BitSet и вставить туда элементы, как показано ниже. Наконец, вы должны вызвать метод xor в одном из BitSet объектов, указав в качестве аргумента второй BitSet объект.
@java_geek
Тестирование — один из процессов, который может быть автоматизирован в рамках CI/CD.
Когда команды работают параллельно, кодовые базы разработчиков могут пересекаться. Чтобы это не приводило к багам и поломкам, внедряется CI-процесс, который собирает ПО и автоматически выполняет тесты.
CD деплоит изменения и проводит дополнительную валидацию.
В итоге уменьшается количество багов, можно быть уверенным в новых сборках и снижать затраты на производство.
В общем, CI/CD — классная и полезная вещь. Расскажем о нем подробнее на бесплатном вебинаре CI/CD: как, зачем, для чего
Встречаемся 5 октября в 19:00
Регистрация тут: https://slurm.club/3Svn3lp
Java to Kotlin: A Refactoring Guidebook
Авторы: Duncan McGregor, Nat Pryce (2021)
Книга учит миграции кода с Java на Kotlin. Получаемый код проще, выразительнее и его легче изменять. К концу чтения книги вы будете уверенно рефакторить код, научитесь писать на Kotlin приложения с нуля и управлять кодовой базой из двух языков по мере ее развития с течением времени.
👉@BookJava