bookjava | Unsorted

Telegram-канал bookjava - Библиотека Java разработчика

11248

Библиотека Java разработчика. Java, Spring, Maven, Hibernate По всем вопросам @evgenycarter № 4880864218

Subscribe to a channel

Библиотека Java разработчика

Docker и Spring Boot микросервис (Быстрый старт)

Разберем основные понятия докера и запустим spring boot микросервис в докере

00:00 Intro
00:58 Установить докер
02:05 Развитие виртуализации
09:30 Компоненты Docker
11:25 Docker Daemon
11:50 Dockerfile
12:42 Docker Image
13:12 Docker Registry
13:45 Docker Container
14:00 Dockerhub
14:57 Практика. Пишем микросервис
17:30 Практика. Пишем dockerfile
23:25 Практика. Создаем docker образ
25:48 Практика. Запускам docke контейнер
27:19 Практика. Основные команды
30:00 Best practice. Как еще можно написать dockerfile
33:14 Best practice. Рекомендации
35:01 Итог

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Как не допустить сериализацию?

Чтобы не допустить автоматическую сериализацию можно переопределить private методы для создания исключительной ситуации NotSerializableException.

private void writeObject(ObjectOutputStream out) throws IOException {
throw new NotSerializableException();
}

private void readObject(ObjectInputStream in) throws IOException {
throw new NotSerializableException();
}

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Как в Java используются final, finally и finalize

В этой статье вы узнаете, где, когда и зачем используется ключевое слово Finalize, и стоит ли его вообще применять в Java. Также вы узнаете о различиях между final, finally и finalize.

https://telegra.ph/Kak-v-Java-ispolzuyutsya-final-finally-i-finalize-04-17

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Пишем рекомендательную систему музыки на Java
Андрей Кузнецов — Мастер-класс

Машинное обучение обычно рассматривают как отдельно стоящую область, требующую специфических знаний. Однако на практике бывает, что для решения бизнес-задач может быть достаточно и простых решений, имплементация которых не представляет сложностей для разработчика.

Используя открытый датасет, мы пишем с нуля на Java рекомендательную систему музыки и разберем, какие из наивных решений могут не сработать в реальных системах. На примере технологий Одноклассников спикер рассказывает, как решаются ML-задачи в гетерогенных продакшенах, где необходимо использовать вместе Java и Python.

Мастер-класс будет интересен разработчикам, которым интересна тема машинного обучения, но они либо еще не погружались в нее, либо сделали самые первые шаги.

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Из джуна в мидла вместе с Холдингом Т1🚀 Приглашаем java-разработчиков в Открытые школы Т1!

🎓 Открытые школы Т1 — это новая карьерная программа для IТ-специалистов, объединяющая обучение без отрыва от работы и offer weeks.

👨‍💻 Для участия необходим опыт работы java-разработчиком от 1 года, а также желание присоединиться к команде Т1.

Т1 занимает 2 место среди крупнейших ИКТ-компаний по версии RAEX 2023 и является партнёром ключевых производителей и разработчиков в сфере ИТ.

В программу входит: spring framework; docker; синхронное и асинхронное взаимодействие, брокеры сообщений; паттерны, SOLID

⏰ Длительность 1 месяц.
💻 Формат: онлайн по вечерам (от 8 часов в неделю на вебинары и практику).

Лучшим назначим интервью и направим оффер!

📌 Подробнее о программе — в карточках внутри поста.

Принимаем заявки до 22 апреля! 🚀

Реклама. ООО "Т1". ИНН 7720484492.

Читать полностью…

Библиотека Java разработчика

🔥 Пройди тест по Java и проверь свои знания.

Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса

🔝 Обновленная, расширенная программа

👉  ПРОЙТИ ТЕСТ: https://otus.pw/gvG3/?erid=LjN8KJAW3

Читать полностью…

Библиотека Java разработчика

Добавьте в свое портфолио кейс по решению задачи с микросервисной архитектурой бесплатно и всего за пару часов

На практическом уроке «Масштабируемая архитектура для систем обработки платежей».

На вебинаре:

- рассмотрим решение задачи по построению масштабируемой отказоустойчивой системы обработки платежей;
- обсудим применения шардирования, паттерна Saga, двухфазного коммита и выбор уровня изоляции транзакций;
- получим описание верхнеуровневой архитектуры.

Занятие пройдёт 24 апреля в 20:00 мск в рамках курса «Microservice Architecture». Доступна рассрочка на обучение!

Чтобы посетить открытый урок, зарегистрируйтесь: https://vk.cc/cwdNPs

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

В Java 21 появилось множество новых функций и методов, которые помогут нам писать код более качественно. Но их легко не заметить или пропустить их использование, поскольку это относительно новая версия.

https://foojay.io/today/ensuring-the-right-usage-of-java-21-new-features/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Регулярные выражения в Java

В Java регулярные выражения или Regex (сокращенно), можно использовать для поиска, манипулирования и редактирования строк в Java. Проверка электронной почты и паролей - вот несколько областей строк, где Regex широко используется для определения ограничений. Регулярные выражения в Java представлены в пакете java.util.regex. Он состоит из 3 классов и 1 интерфейса. Пакет java.util.regex в основном состоит из следующих трех классов, как показано ниже в табличной форме:

Pattern Class
Matcher Class
PatternSyntaxException Class
MatchResult Interface

https://www.geeksforgeeks.org/regular-expressions-in-java/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Сравните репозитории Spring Data

Основная часть работы в Spring Data строится вокруг интерфейса Repository. Это маркерный интерфейс. От него наследуются интерфейсы-специализации, которые уже содержат методы для работы с сущностями базы данных. Все эти интерфейсы параметризуются двумя типами: самой сущности и её идентификатора.

CrudRepository – базовый набор операций над сущностями: создание, чтение, изменение и удаление (CRUD).

PagingAndSortingRepository – добавляет к CRUD возможность постраничной загрузки данных с определенной сортировкой.

JpaRepository – расширение PagingAndSortingRepository, полноценно реализующее Java Persistence API. Добавляет ряд методов, таких как например flush и deleteInBatch.

MongoRepository – расширение PagingAndSortingRepository, специфичное для MongoDB.

Вспомогательные методы, специфичные для конкретной модели данных, добавляются в пользовательские интерфейсы-наследники. Основываясь на именах добавляемых методов, фреймворк сам создаёт их реализацию.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

⚡️  Тест по Java от OTUS
Проверь насколько хорошо ты знаешь Java 

Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса🎁 .

👉  ПРОЙТИ ТЕСТ: 
https://otus.pw/3EaK/?erid=LjN8K21s4

🎫  А ещё, сейчас действуют скидка на курс до 21.04. Возможна оплата в рассрочку! Предложение ограничено.

Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля

Читать полностью…

Библиотека Java разработчика

Дмитрий Тучс — The art of JUnit extensions

В режиме онлайн берем микросервисный проект (Spring Authorization Server, Spring OAuth 2.0 Resource Server) и строим полноценную инфраструктуру для работы с тестовыми данными, авторизацией и другим, используя JUnit Extensions. Только практические навыки, которые будут полезны большинству автоматизаторов на Java.

https://www.youtube.com/watch?v=NFHdzKcU5OU

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Советы по использованию Spring Framework 🚀

Используйте аспектно-ориентированное программирование (AOP) в SpringFramework для решения сквозных задач. Реализуйте протоколирование, безопасность и кэширование с помощью @Aspect
и pointcuts. 🔥

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Как перейти на Scala: основы и особенности

Расскажет опытный эксперт — Алексей Воронец. На уроке вы:

- обсудите синтаксические особенности языка;
- узнаете, какие возможности языка позволяют комфортно использовать подходы функционального программирования;
- попрактикуетесь в написании функций и методов, создании иммутабельных конструкций;
- получите представление о возможностях композиции.

Занятие пройдёт 10 апреля в 20:00 мск в рамках курса «Scala-разработчик». Доступна рассрочка на обучение!

Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cvVJsJ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Что хранится в файле манифеста?

В JAR архиве можно найти файл META-INF/MANIFEST.MF. Это манифест архива – хранилище его метаинформации. Манифест обычно добавляется той же утилитой, которой собирается jar-файл: maven-jar-plugin, команда JDK jar.

Манифест – текстовый файл, который состоит из заголовков, строчек вида ключ: значение. Заголовки разделены на секции. Файл начинается с главной секции, описывающей метаинформацию всего архива. Следом, отделенные пустыми строками, идут секции для отдельных пакетов и файлов. В них могут переопределяться общие заголовки. JVM игнорирует неизвестные ей заголовки, что позволяет сторонним утилитам хранить в манифесте свою специфичную метаинформацию.

Вот некоторые из часто используемых заголовков:
• Информация об архиве: Manifest-Version, Created-By, Multi-Release, Built-By
• Main-class – точка входа приложения
• Classpath приложения
• Информация об экстеншне (Specification и Implementation, deprecated)
• Заголовки OSGI бандла
• Типы и хэши файлов архива (особенно применимо в Android приложениях)

Полный список стандартных заголовков можно почитать в документации.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Всё, что нужно знать про СВЯЗАННЫЙ СПИСОК в программировании

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🚀 Участвуй в True Tech Hack от МТС и поборись за общий призовой фонд в 1 500 000 рублей. Регистрируйся.

Приглашаем разработчиков, специалистов по Data Science, менеджеров по продукту, дизайнеров. Соревноваться предстоит в одном из двух треков, чтобы улучшить жизнь людей с особыми потребностями.

🏠 Трек 1. Улучшение клиентского опыта витрины МТС Live для пользователей с особыми потребностями
⭐ Трек 2. Разработка голосового управления для МТС Финтех на основе искусственного интеллекта для людей с ограниченными возможностями

Как пройдет True Tech Hack:
🔸 26 апреля – открытие хакатона и Q&A-сессия
🔸 27 апреля-12 мая – чек-поинты с экспертами
🔸 12 мая – окончание приема проектов
🔸 14 мая – полуфинал, защита лучших решений и объявление финалистов
🔸 17 мая – финал в Москве

True Tech Hack – твой шанс получить новый опыт, выиграть приз и сделать наш мир доступней и удобней для всех. Регистрируйся на хакатон до 25 апреля по ссылке.

Читать полностью…

Библиотека Java разработчика

🧙‍♂️Что может помочь, чтобы продвинуться в Java-разработке: магия или практика?

Расскажем на курсе "Разработчик на Spring Framework" от OTUS.

🤣 Принимаем в свой орден до конца мая

⚡️ Пройди тест по Java от OTUS и проверь, готов ли ты к обучению на нашем курсе?

Ответишь — пройдешь курс по специальной цене.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cwgM5b

🎫 Курс можно приобрести в рассрочку

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Чего следует избегать при написании Java-кода

Небольшая статья, в которой перечислены ошибки, допускаемые разработчиками при разработке на Java. Мы хотим, чтобы наш код был эффективным и совместимым.

Использование Enum.values

public enum Fruits {
APPLE, PEAR, ORANGE, BANANA;

public static void main(String[] args) {
System.out.println(Fruits.values());
System.out.println(Fruits.values());
}
}
// output
// [Lcom.test.Fruits;@7ad041f3
// [Lcom.test.Fruits;@251a69d7


Передача параметров Optional в качестве параметра метода

LocalDateTime getCurrentTime(Optional<ZoneId> zoneId) {
return zoneId.stream()
.map(LocalDateTime::now)
.findFirst()
.orElse(LocalDateTime.now(ZoneId.systemDefault()));
}

Использование StringBuilder

String longString = "";
longString +="start";
longString +="middle";
longString +="middle";
longString +="middle";
longString +="end";



b.stoilov/things-to-avoid-while-writing-java-cd078e5aa61c" rel="nofollow">https://medium.com/@b.stoilov/things-to-avoid-while-writing-java-cd078e5aa61c

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Еще раз о перформансе стримов в Java

Время от времени я наблюдаю или даже бываю втянутым в спор о перформансе стримов в джаве. Общеизвестно, что стримы это компромисс между перформансом и удобством. Однако я не нашел вменяемого набора бенчмарков, которые бы показали, насколько именно медленны (или быстры) стримы. Поэтому я решил написать эти бенчмарки сам.

daniel.las/speed-of-java-stream-1cc3a94b44c2" rel="nofollow">https://medium.com/@daniel.las/speed-of-java-stream-1cc3a94b44c2

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Когда используется StampedLock?

StampedLock – примитив синхронизации, добавленный в Java с версии 8. Общий принцип его работы точно такой же, как у ReadWriteLock: захват неэксклюзивной блокировки (на чтение), и эксклюзивной (на запись). Но есть у этих классов ряд различий в деталях.

Во-первых, если блокировка ReadWriteLock возвращает объекты типа Lock, то StampedLock возвращает числа типа long, которые и называется «штампами». Штамп служит идентификатором лока, он передается параметром в методы по работе с ранее захваченной блокировкой чтения или записи. Специальный штамп 0 означает неудавшийся захват.

StampedLock в отличие от ReentrantReadWriteLock – не реентрант. Это накладывает бóльшую ответственность на программиста: можно устроить дедлок на одном потоке.

В StampedLock расширена функциональность. Новые методы с префиксом try* не висят в ожидании. Методы tryOptimistic* реализуют оптимистичную блокировку. Методы tryConvert* дают возможность изменять «уровень» заблокированности: можно попытаться превратить readLock во writeLock, и наоборот.

Не смотря на похожесть, StampedLock не наследуется от ReadWriteLock. Но для совместимости в нём предусмотрены методы-адаптеры asReadWriteLock, asReadLock и asWriteLock.

Итого, блокировка на штампах решает те же задачи, что ReadWriteLock, но дает больше возможностей и лучшую производительность.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🧠 Если у вас есть конфликты при мерже, не волнуйтесь!

Воспользуйтесь волшебной палочкой, чтобы разрешить простые конфликты. Убрав их, вы сможете сосредоточиться на разрешении остальных. #IntelliJIDEATips

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🔦 Что может пойти не так при переносе сервиса на Kubernetes?

Дарим оберег от факапов на бесплатном вебинаре Миграция сервисов на Kubernetes и разбор факапов. Он пройдет 17 апреля, зарегистрироваться можно по ссылке

Заговор на комфортный переезд* сделает Виталий Лихачев, Senior software engineer в Avito.

Про какие факапы расскажет Виталий:

🔴 Архитектура монолитного приложения плохо адаптирована;

🔴 Команда не готова к переезду и не до конца разобралась с инструментами оркестратора;

🔴 Вы не используете инструменты, дополняющие Kubernetes;

🔴 Не использовали автоматизацию решений типовых задач.

И другие факапы. Приходите на вебинар, чтобы разобраться в нюансах и расспросить спикера о деталях.

Когда: 17 апреля
Во сколько: 19:00 по МСК
Регистрация по ссылке

*не является публичной офертой 😄

Реклама ООО «Слёрм» ИНН 3652901451

Читать полностью…

Библиотека Java разработчика

🧑‍💻Ты Java-разработчик?
Присоединяйся к IT_One CAREER HACKATHON 2024! 💚

Приглашаем Java-разработчиков, ИТ-специалистов уровня junior, middle и senior, провести 3 дня за решением кейса от IT_One.

🚀Рассказываем подробнее:
- Кейс, который предстоит решить: Разработка приложения для управления финансами
- Формат: мероприятие пройдёт онлайн
- Даты хакатона: 17 - 19 мая 2024
- Дедлайн регистрации: до 13.05.2024, 23:59 МСК

🔥Что тебя ждёт?
- Новый кейс в портфолио
- Мерч для победителей и сертификаты всем участникам
- Призовой фонд – 500.000 рублей
- Встречи с экспертами и питчи
- Командная работа 

Проведи выходные с максимальной пользой, участвуй в хакатоне и решай задачу под руководством специалистов на хакатоне от IT_One! 💚

Регистрация уже доступна по ссылке: https://tglink.io/c0d222cbcd04

Читать полностью…

Библиотека Java разработчика

Как прочитать криптографический ключ?

Для чтения криптографического ключа необходимо использовать классы Java Cryptography Architecture (JCA). Пример кода для чтения криптографического ключа из файла вида PKCS#8 с помощью этих классов может выглядеть следующим образом:

// Загружаем публичный ключ из файла
FileInputStream fis = new FileInputStream("public.pem");
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
byte[] keyBytes = new byte[dis.available()];
dis.readFully(keyBytes);
dis.close();

// Преобразуем байты в объект PublicKey
X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey publicKey = kf.generatePublic(spec);


// Используем ключ для выполнения криптографических операций

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Совет по Java 🚀

Если вам нужно работать с API, требующим List<String>, но вы хотите работать с текстовыми блоками Java 14, вы можете легко преобразовать их в List. В Java 17 вы можете сначала вызвать lines() для String, который возвращает Stream, а затем непосредственно toList(), который выдает List.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Хотите освоить среду выполнения wasm/wasi и запускать серверные приложения без привязки к операционной системе?

Присоединяйтесь к нашему бесплатному уроку «Wasm на сервере для высоконагруженных систем».

Дата: 09.04 в 20:00 мск

На уроке вы узнаете:
- Основы компиляции приложений в WebAssembly из различных технологий разработки: tinygo, emscripten, cargo.
- Как использовать Docker и NGINX Unit для публикации ваших wasm-приложений.
- Подключение wasm к envoy и публикация как функций в knative.
- Инструменты отладки и оценки производительности опубликованных wasm-приложений с использованием wzprof.
Не упустите возможность погрузиться в мир WebAssembly и трансформировать свою разработку серверных приложений!

После вебинара можно записаться на курс «Highload Architect» от Otus. Курс доступен для приобретения в рассрочку.

Пройдите короткий тест и начните обучение бесплатно: https://vk.cc/cvZDfr

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Java 23: Восстановление баланса с помощью примитивных паттернов

Постоянное внедрение сопоставления шаблонов в Java привело к тому, что некоторые функции языка оказались более значимыми, чем другие, и разбалансировали язык. В Java 23 примитивные паттерны исправят эту ситуацию в отношении примитивных типов в instanceof и switch. В этом эпизоде также рассматриваются другие грядущие паттерны ('deconstruction', 'static', 'instance' и 'constant') и показывается, как они будут развивать сопоставление паттернов в Java.

0:00 Intro
1:02 Existing Patterns
1:23 Type Patterns
1:32 Guarded Patterns
1:53 Record Patterns
2:09 Unnamed Patterns
2:29 Nested Patterns
2:50 Summary of Existing Patterns
3:38 Primitive Patterns in instanceof
5:17 Primitive Patterns in switch
6:30 Primitive Patterns when Nested
7:33 Upcoming Patterns
7:59 Deconstruction Patterns
8:40 Static Patterns
9:09 Instance Patterns
9:54 Constant Patterns
10:37 Try JDK 23 EA!

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Трассировка в Spring Boot3

Вспоминая свои первые годы работы, я несколько удивляюсь тому, как я устранял проблемы, связанные с продакшеном. Я работал над проектом, в котором занимался всем - от взаимодействия с клиентами до кода, развертывания и, естественно, решения проблем. Когда возникала проблема и у меня не было четкого решения, я брал дамп базы данных продакшена, запускал приложение на своей машине с этой базой данных, затем звонил заказчику и пытался повторить его действия, используя необходимые отладочные указатели и операторы печати, чтобы точно определить проблему. В то время этот метод оказался для меня эффективным. Приложение было небольшим, с ограниченной базой пользователей, и с ним вполне мог справиться один разработчик. Однако я еще не понимал важности протоколирования.

https://medium.com/javarevisited/tracing-in-spring-boot3-097205dc08f4

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Тест по Java от OTUS

Проверь насколько хорошо ты знаешь Java

Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса🎁 .

👉 ПРОЙТИ ТЕСТ: https://otus.pw/W77D/?erid=2VtzqvA68UN

🎫 А ещё, сейчас действуют скидка в честь дня рождения Otus! Возможна оплата в рассрочку! Предложение ограничено.

Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля


Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…
Subscribe to a channel