Библиотека Java разработчика
رفتن به کانال در Telegram
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
نمایش بیشتر9 987
مشترکین
-324 ساعت
-177 روز
-5930 روز
آرشیو پست ها
💪 Пройди тест по Java и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса🎁 .
🚀Успей присоединиться к группе, курс стартует 30 июня!
✍️ ПРОЙТИ ТЕСТ: https://otus.pw/VlGLx/
Нативная интеграция. Информация о продукте www.otus.ruКак прочитать криптографический ключ?
Для чтения криптографического ключа необходимо использовать классы 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Погрузиться в мир Javа и написать свою первую программу? Уже через 14 дней подготовительного курса!
Приходите с любым бэкграундом: нам не важны возраст, пол, образование и текущая профессия. Всего 990 ₽ и ваше жгучее желание начать.
✅ Вас ждет 62 урока теории и практики прямо в браузере, вебинары, лайвкодинг и первая собственная программа на Java, написанная под руководством опытного наставника и сертификат по окончании.
⏰ Начало уже 4 июля!
Spring Profiles
В этом руководстве мы сосредоточимся на представлении профилей в Spring.
Профили являются основной особенностью фреймворка, позволяя нам сопоставлять наши beans с различными профилями - например, dev, test и prod.
Затем мы можем активировать разные профили в разных окружениях, чтобы загружать только те модули, которые нам нужны.
https://www.baeldung.com/spring-profiles
👉@BookJava
Java (Средний уровень)
Урок 1 - Обучение Java (средний уровень). Урок 1 - Строковые операторы
Урок 2 - Строковые операторы в Java (часть 2)
Урок 3 - Рекурсия в Java
Урок 4 - Введение в коллекции в Java. ArrayList
Урок 5 - Коллекции ArrayList и iterator в Java
Урок 6 - Коллекции LinkedList в Java
Урок 7 - Коллекции LinkedList в Java
Урок 8 - Коллекции в Java. Конвертация списка в массив
Урок 9 - Коллекции в Java. Сортировка списка
Урок 10 - Коллекции в Java. Метод для вывода списка в консоль
Все видео доступны на youtube
👉@BookJava
Коллеги, приглашаем вас на вебинар, где Валерий Харисов расскажет о том, как искать и находить неочевидные утечки исходного кода и содержащихся в них секретов.
🕚 29 июня в 15:00 (МСК)
Leak-Search — сервис сканирования публичных репозиториев на наличие утечек исходного кода, конфигураций и конфиденциальных данных компании.
Разработан и поддерживается командой по ИБ группы компаний QIWI
👨💻На вебинаре рассмотрим:
- как программный код и секреты компании попадают в сеть
- какие векторы утечек часто остаются вне фокуса
- сколько это может стоить бизнесу
- и главное, как не стать жертвой утечки данных
Все на реальных кейсах крупнейших российских и зарубежных компаний, утечки которых были найдены с помощью Leak-Search, либо известны публично.
Для участия на вебинаре зарегистрируйтесь по ссылке
https://link.webinar.fm/register/55392181/7xyczjsv
🕚Ждем вас 29 июня в 15:00 (МСК)
❗️На вебинаре вы получите доступ к пробному периоду❗️
План подготовки к собеседованию на позицию Java разработчика
Каждый раз, готовясь к собеседованиям на позицию «Java разработчик», я понимаю, что мне бы очень помог конкретный план подготовки. Поэтому все свои записи, накопившиеся в ходе прохождения собеседований, было решено структурировать и опубликовать. Надеюсь, кому-то этот план будет полезен.
И я намеренно не пишу, для кого предназначен этот план подготовки: для senior, middle или junior разработчика — все зависит от конкретной вакансии и от требований работодателя. Поэтому опирайтесь на этот план, но фильтруйте и в то же время не воспринимайте его как исчерпывающее руководство.
https://habr.com/ru/articles/473872/
👉@BookJava
🤪 Если вы пишете приложения на Java и выбираете архитектуру между монолитной и микросервисной, то курс «Микросервисы и API на Java и Kotlin» для вас!
Мы убеждены, что разрабатывать микросервисы интереснее, а работать с ними — проще! Почему?
✔️ Легче ловить сбои и приводить приложение в порядок
✔️ Отдельные компоненты можно масштабировать, при этом не придётся переписывать всю систему
✔️ Разные микросервисы — разные технологии разработки
✔️ Можно обновлять приложение по отдельным частям
Все эти темы и многие другие мы разбираем на курсе по микросервисам на Java.
🤑 И чтобы было легче вкатиться в занятия, мы дарим вам два бесплатных демо-урока. На них мы разберём отличия монолита от микросервиса, в каких условиях стоит выбирать ту или иную архитектуру ПО.
Переходите по ссылке и забирайте уроки, эти знания вам точно пригодятся в работе! Бесплатные уроки можно получить тут.
Что такое пакет? Перечислите различные преимущества пакетов.
Пакеты — это набор связанных классов и интерфейсов, которые связаны вместе. Используя пакеты, разработчики могут легко модулировать код и оптимизировать его повторное использование. Кроме того, код внутри пакетов может быть импортирован другими классами и использован повторно. Несколько его преимуществ:
• Пакеты на Java помогают избежать конфликтов имен.
• Они обеспечивают более легкий контроль доступа к коду.
• Пакеты также могут содержать скрытые классы, которые не видны внешним классам и используются только внутри пакета..
• Создает правильную иерархическую структуру, которая упрощает поиск связанных классов.
👉@BookJava
⚡️ Пройди тест по Java ⚡️
💣 Все, кто успешно пройдет тест, получат доступ к записям открытых уроков курса для знакомства с форматом обучения и спец.цену на курс.
Что даст обучение на курсе:
- Сможете создавать современные java-приложения
- Поймете основы функционирования JVM (сборка мусора, byteCode)
- Освоите приемы применения многопоточности.
- Самостоятельно решать задачи уровня Middle+
📌ПРОЙТИ ТЕСТ - https://otus.pw/VlGLx/
💪🏻Хочешь протестировать учебный процесс заранее? Регистрируйся на бесплатное демо-занятие:
📢📢 Регистрация на вебинар 21 Июня в 20:00 - «Конечные автоматы»
Нативная интеграция. Информация о продукте www.otus.ruПроблема квадрата/прямоугольника, объяснение и решение
В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение.
https://www.youtube.com/watch?v=AILeiAJY_78
👉@BookJava
Spring Security в деталях
Аутентификация - Spring Security в деталях
Получение информации о пользователе - Spring Security в деталях
Ещё один способ получения аутентифицированного пользователя #java #springsecurity
Точки входа аутентификации - Spring Security в деталях
Источники информации о пользователях - Spring Security в деталях
Устаревшие DSL в Spring Security 6.1
Отладка контекста безопасности - Spring Security в деталях
DSL и конфигураторы контекста безопасности - Spring Security в деталях
Фильтры безопасности - Spring Security в деталях
источник
👉@BookJava
Мечтали о космосе, а работаете в опенспейсе?
Мы тоже… Но мечты же должны сбываться! Поэтому мы создали свои мультивселенные и решили провести там настоящие соревнования по спортивному хакингу IT’s Tinkoff CTF.
Путешественников ждут 30 порталов в новые измерения. Там предстоит пройти миссии, набрать максимальное количество баллов и, конечно, разгадать все пасхалки.
Задания будут интересны разработчикам, SRE- и QA-инженерам, аналитикам и другим ИТ-специалистам. А еще вы сможете потренироваться на тестовых заданиях и выбрать лигу по своим скиллам.
Лучшим командам — вселенский почет и денежные призы до 360 000 рублей!
Покорять мультивселенные отправимся 15 и 16 июля. Участвовать можно онлайн и очно в 14 ИТ-хабах Тинькофф по всей России. Офлайн-участников ждут квизы, настолки, крутой мерч и нетворкинг с экспертами.
🚀Переходите на IT’s Tinkoff CTF, читайте подробности и регистрируйтесь!
Да пребудут с вами силы мультивселенной капибары!
(Упс… кажется, мы спалили первую пасхалку, Хьюстон)
Ерид: LdtCKZmzw
Подборка GitHub-репозиториев для Java-разработчиков
Java Design Patterns - то типовые и повторно используемые шаблоны для решения частых проблем в проектировании приложений.
https://github.com/iluwatar/java-design-patterns
Realworld – это GitHub-репозиторий, с которым нужно ознакомиться всем разработчикам, особенно Full-stack.
https://github.com/gothinkster/realworld
Algorithms - правильные алгоритмы позволяют улучшить производительность приложения.
https://github.com/TheAlgorithms/Java
Awesome Java - есть практически все по Java, а сам материал подается в форме справочника.
https://github.com/akullpp/awesome-java
RxJava Android Samples – это реализация Java ReactiveX, в которой реактивное программирование предлагается через наблюдаемые объекты (Observables).
https://github.com/kaushikgopal/RxJava-Android-Samples
👉@BookJava
Шпаргалка по Java
https://www.codewithharry.com/blogpost/java-cheatsheet/
👉@BookJava
❗️ Хотите создавать мощные веб-сервисы с помощью функционального программирования?
📣 Присоединяйтесь 22 июня в 20:00 к открытому уроку «Скрещиваем http4s и ZIO».
Встречу проведет Алексей Воронец, руководитель разработки в NAUMEN, в рамках старта нового потока онлайн-курса «Scala-разработчик» в OTUS.
📌 На занятии мы:
- Узнаем oб основных компонентах REST-сервиса;
- Сформируем представление о http4s (http-библиотека) и ZIO (библиотека асинхронного функционального эффекта);
- Попрактикуемся в создании полноценного простого http-сервиса (сервер, эндпоинты, логика).
➡️ Регистрация на вебинар: https://otus.pw/oF1L/
Отличие интерфейса Runnable и Callable?
• Интерфейс Runnable появился в Java 1.0, а интерфейс Callable был введен в Java 5.0 в составе библиотеки
java.util.concurrent;
• Классы, реализующие интерфейс Runnable для выполнения задачи должны реализовывать метод run(). Классы, реализующие интерфейс Callable - метод call();
• Метод Runnable.run() не возвращает никакого значения, Callable.call() возвращает объект Future, который может содержать результат вычислений;
• Метод run() не может выбрасывать проверяемые исключения, в то время как метод call() может.
👉@BookJavaОбъясните разницу между Linkedlist и Arraylist.
ArrayList — это реализация интерфейса List, основанная на массиве. ArrayList внутренне обрабатывает изменение размера этого массива при добавлении или удалении элементов. Вы можете получить доступ к его элементам за константное время по их индексу в массиве. Однако вставка или удаление элемента подразумевает сдвиг всех последующих элементов, что может быть медленным, если массив огромен, а вставленный или удаленный элемент находится близко к началу списка.
LinkedList — это двусвязный список: отдельные элементы помещаются в объекты Node (узел), которые имеют ссылки на предыдущий и следующий Node. Эта реализация может оказаться более эффективной, чем ArrayList, если у вас много вставок или удалений в разных частях списка, особенно если список большой.
Однако в большинстве случаев ArrayList превосходит LinkedList. Даже перемещение элементов в ArrayList, хотя и является операцией O(n), реализовано в виде очень быстрого вызова System.arraycopy(). Это может даже оказаться быстрее, чем O(1) вставка в LinkedList, которая требует создания экземпляра объекта Node и обновления нескольких ссылок под капотом. LinkedList также может иметь большие накладные расходы памяти из-за создания нескольких небольших Node объектов.
👉@BookJava
⁉️ Как упросить структуру Java-приложения?
♨️ Узнаем 21 июня в 20:00 на открытом уроке «Конечные автоматы».
Вебинар приурочен к старту онлайн-курса «Java Developer. Professional» в OTUS.
Занятие проведет Сергей Петрелевич, Java-разработчиком с 20-летним стажем.
📢📢 На уроке мы посмотрим, как с помощью конечных автоматов можно существенно упростить структуру приложения и избавиться от кучи if-ов, размазанных тонким слоем по всему приложению.
🔵Не упустите возможность протестировать формат обучения! Больше полезного ждет вас на курсе, который можно оплатить любым удобным способом.
👉 Для участия зарегистрируйтесь и пройдите тест: https://otus.pw/ARxZ/
Нативная интеграция. Информация о продукте www.otus.ru