Библиотека Java разработчика
Открыть в Telegram
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
Больше9 987
Подписчики
-324 часа
-177 дней
-5930 дней
Архив постов
Друзья, нужна помощь! Подписчик прислал необычное фото баннера от Академии Яндекса. Есть идеи, в чем его скрытый смысл?
Предлагаем присоединиться к нам в расшифровке — пишите свои варианты, что закодировано, в комментарии.
👉@BookJava
Шпаргалки по Java
1. Регулярные выражения в Java
2. Лучшие практики Java 8
3. Шпаргалка по JVM
4. Generic-типы Java
5. Шпаргалка по Maven
👉@BookJava
Нюансы разработки парсера для своего языка программирования
https://habr.com/ru/companies/timeweb/articles/724146/
👉@BookJava
Что такое ClickHouse и как эффективно использовать его в высоких нагрузках? Разберемся в этом вместе с экспертом 🗓 29 мая в 20:00 на открытом уроке.
На этой встрече детальнее рассмотрим:
- SQL диалект,
- физическое хранение данных,
- индексацию данных и разреженные индексы,
- различные движки: MergeTree, Log.
Спикером выступит 👨💻 Андрей Поляков, старший разработчик в Unlimint с опытом бэкенд-разработки более 6 лет.
👉 Пройдите вступительный тест, чтобы записаться на урок — https://otus.pw/JgB8/
Больше полезных навыков будет ждать вас на онлайн-курсе OTUS «Highload Architect». Курс можно приобрести удобным для вас способом.
Реклама. Информация о рекламодателе на сайте www.otus.ru
@ Transactional в Spring и исключения
В этой статье я бы хотел рассказать, как Spring'овая аннотация @ Transactional ведет себя при возникновении исключений.
Если коротко, то Spring обрабатывает исключения в методах, помеченных @ Transactional, следующим образом:
RuntimeException'ы приводят к откату транзакции, checked exception'ы не приводят;
RuntimeException'ы приводят к откату транзакции в момент, когда exception пересекает границы @ Transactional-метода. Даже если вы перехватите это исключение выше по стеку, транзакция все равно откатится;
Этим поведением можно управлять через атрибуты rollbackFor / noRollbackFor у аннотации @ Transcational.
https://habr.com/ru/articles/725064/
👉@BookJava
♨️ Тест на знание языка Java
— Ответьте на 21 вопрос и проверьте, насколько хорошо вы знаете язык Java и готовы освоить Spring. Сможете сдать — пройдёте на продвинутый онлайн-курс "Разработчик на Spring" Framework со скидкой!
👉 ПРОЙТИ ТЕСТ ОНЛАЙН-КУРСА "Разработчик на Spring Framework"
Курс доступен в рассрочку.
🎁 Пройдете успешно тест, получите доступ к открытым урокам курса.
Нативная интеграция. Информация о продукте www.otus.ruЧто произойдет, если ключевое слово static не использовать с методом main() в Java?
Ошибки компиляции не будет, но во время выполнения мы получим ошибку NoSuchMethodError.
👉@BookJava
Java. Задача о рюкзаке. Динамическое программирование.
В этом видео разбирается классическая задача о рюкзаке и алгоритмы её решения. Особое внимание уделяется решению задачи с помощью динамического программирования.
Код https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/knapsack
источник
👉@BookJava
🔥Как за пару часов с нуля сделать игру на Java?
Узнайте 25 мая в 20:00 мск на открытом уроке в OTUS! Вебинар приурочен к старту онлайн-курса «Специализация Java Developer» в OTUS. Продолжить обучение на курсе можно в рассрочку.
⚡️На занятии мы посмотрим, как за несколько часов с нуля сделать небольшую консольную игру на Java. Прямо на ходу мы будем изучать принципы написания кода и продумывать логику игры.
✨Урок будет полезен тем, кто хочет:
— С нуля изучать Java;
— Посмотреть, как с нуля на практике пишутся Java-приложения;
— Научиться писать код на языке Java и получить базовые навыки программирования.
В результате вы увидите, как пишется код и создаются программы на языке Java.
👇Зарегистрируйтесь, чтобы участвовать в открытом уроке: https://otus.pw/zMQb/
Нативная интеграция. Информация о продукте www.otus.ru
new vs valueOf
Старайтесь всегда использовать метод
valueOf вместо конструктора в стандартных классах-оболочках примитивных типов, кроме тех случаев, когда вам нужно конкретно выделить память под новое значение. Сейчас объясню, почему.
Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
👉@BookJavaJava. Проблема с null. Null safety
В этом видео я рассказываю о проблеме с null в языке программирования Java, из-за которой возникает печально известное NullPointerExeption. Даю некоторые рекомендации по организации кода для борьбы с этой проблемой и повышения надежности работы программ.
источник
👉@BookJava
⁉️ Как стать Java-разработчиком которого хантят рекрутеры?
🦾 Конечно прокачивать свои скилы!
Пройди тест по Java и проверь как хорошо ты знаешь язык.
Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.
✍️ ПРОЙТИ ТЕСТ: https://otus.pw/VlGLx/
Нативная интеграция. Информация о продукте www.otus.ruПредставь, что в короткий срок нужно масштабировать приложение: сделать его быстрее, мощнее и функциональнее. Kafka — решение многих архитектурных проблем. Но придется убить месяцы на то, чтобы самостоятельно разобраться в документации. Что делать?
Пройти интенсив в Слёрм!
26 мая стартует поток курса «Apache Kafka для разработчиков».
Он поможет сэкономить время на изучении, добавить красивую строчку в резюме и взобраться на следующую ступень карьерной лестницы.
Вот несколько причин, почему разработчику стоит изучать Kafka:
✅ Почувствуешь, насколько легче работать с микросервисами.
✅ Будешь быстрее и эффективнее решать рабочие задачи.
✅ Узнаешь про типовые шаблоны проектирования.
✅ Узнаешь о большинстве ошибок тех, кто начинает работу с Kafka.
✅ Сделаешь свои приложения более отказоустройчивыми.
✅ Овладеешь востребованным инструментом.
Курс рассчитан на три дня. В нём: щепотка теории, общение с экспертами и много практики на наших стендах. Потренируешься и поймешь, как организовать работу микросервисов и повысить общую надежность системы.
Оставить заявку можно 👉 на нашем сайте. Приходи за знаниями в Слёрм!
До 26 мая по промокоду Кafka15 получи скидку 15%.
Микросервисы на Spring
доработка модуля Eureka Server
добавление модуля клиента Eureka
прямой вызов микросервиса по порту
что такое API Gateway
добавление API Gateway
перенаправления в API Gateway
добавление нового микросервиса
что такое Load Balancer
Load balancer в API Gateway
стандартные порты приложений
источник
👉@BookJava
🥷 Готов выбрать светлую сторону силы, юный джавист?
Эксперты OTUS приготовили для тебя полный сложной практики онлайн-курс «Java Developer. Professional», который расширит твои возможности использования Java.
🟠За 6 месяцев ты прокачаешь алгоритмы и сборщики мусора, байт-код и classloader, паттерны и тестирование, работу с окружением — логирование, jdbc и Hibernate, библиотеки и фреймворки, многопоточность и многое другое.
🦸🏼♂️Компании-партнеры ждут, когда ты овладеешь этим мастерством. Проходи вступительный тест и помни большая сила — большая ответственность.
👉 ПРОЙТИ ТЕСТ: https://otus.pw/VlGLx/
Нативная интеграция. Информация о продукте www.otus.ruМикросервисы на Spring
монолитные приложения
что такое микросервисы
монолит или микросервисы
CI/CD Devops
что такое Spring Cloud
что такое Service Discovery
схема работы тестового проекта
создание модульного проекта в IDEA
добавление модуля Eureka Server
разбор проекта Eureka Server
источник
👉@BookJava
Как прочитать криптографический ключ?
Для чтения криптографического ключа необходимо использовать классы 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
