bookjava | Unsorted

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

10986

📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Subscribe to a channel

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

11 интересных фишек Java

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

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

Я надеюсь, что это именно так, поэтому в этом докладе я уделю 15 минут тому, чтобы рассказать об 11 вещах, на изучение которых у меня ушло 14 лет. А это значит, что у вас есть шанс научиться этим вещам в 490896 раз быстрее, чем я! 🚀

источник

👉@BookJava

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

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

FAQ по var в Java

https://openjdk.org/projects/amber/guides/lvti-faq

👉@BookJava

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

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

Как сгенерировать UUID в качестве первичных ключей при помощи Hibernate

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

https://thorben-janssen.com/generate-uuids-primary-keys-hibernate/

👉@BookJava

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

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

Что такое механизм try-with-resources?

Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.

Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.

👉@BookJava

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

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

Чем абстрактный класс отличается от интерфейса? В каких случаях следует использовать абстрактный класс, а в каких интерфейс?

• В Java класс может одновременно реализовать несколько интерфейсов, но наследоваться только от одного класса.
• Абстрактные классы используются только тогда, когда присутствует тип отношений «is a» (является). Интерфейсы могут реализоваться классами, которые не связаны друг с другом.
• Абстрактный класс - средство, позволяющее избежать написания повторяющегося кода, инструмент для частичной реализации поведения. Интерфейс - это средство выражения семантики класса, контракт, описывающий возможности. Все методы интерфейса неявно объявляются как public abstract или (начиная с Java 😍 default - методами с реализацией по-умолчанию, а поля - public static final.
• Интерфейсы позволяют создавать структуры типов без иерархии.
• Наследуясь от абстрактного, класс «растворяет» собственную индивидуальность. Реализуя интерфейс, он расширяет собственную функциональность.
Абстрактные классы содержат частичную реализацию, которая дополняется или расширяется в подклассах. При этом все подклассы схожи между собой в части реализации, унаследованной от абстрактного класса, и отличаются лишь в части собственной реализации абстрактных методов родителя. Поэтому абстрактные классы применяются в случае построения иерархии однотипных, очень похожих друг на друга классов. В этом случае наследование от абстрактного класса, реализующего поведение объекта по умолчанию может быть полезно, так как позволяет избежать написания повторяющегося кода. Во всех остальных случаях лучше использовать интерфейсы.

👉@BookJava

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

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

❗️Отус приглашает 31 июля в 19:00 мск на бесплатный вебинар «Разработка монолитного приложения со Spring» онлайн-курса «Kotlin Backend Developer. Professional»!

— На занятии мы познакомимся со фреймворком Spring и его принципом работы.
— Рассмотрим особенности разработки Spring приложения на языке Kotlin.
— Разработаем монолитное приложение и напишем пару интеграционных тестов.
— Упакуем наше приложение в Docker, как готовое решение.

В результате вебинара вы:
— узнаем преимущества и недостатки монолитной архитектуры, фреймворка Spring, особенностей разработки со Spring в Kotlin;
— попрактикуемся в разработке работающего монолитного приложения и разместим его в Docker-контейнере.

➡️ Регистрация на вебинар: https://otus.pw/SGyv/

Нативная интеграция. Информация о продукте www.otus.ru

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

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

Создание REST API с использованием Spring WebFlux и Security

00:00:00 Введение
00:00:20 Создание проекта
00:11:36 Создание миграций БД
00:15:40 Создание базовых классов
00:23:20 Реализация логики генерации JWT токена
00:46:30 Реализация логики валидации JWT токена
00:53:05 Построения цепочки аутентификации
01:04:22 Финальная конфигурация с использованием SecurityWebFilterChain
01:12:11 Реализация REST контроллеров
01:23:15 Проверка REST API средствами Postman
01:24:21 Добавление и конфигурация обработчика ошибок
01:25:40 Заключение

Ссылка на Github репозиторий https://github.com/proselytear/webfluxsecurity

источник

👉@BookJava

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

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

На картинке приведён список контролируемых исключений (Checked Exceptions) в Java, определенных в java.lang.

👉@BookJava

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

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

❗️Хотите научиться эффективно работать с базами данных?

Наращивайте объем знаний и навыков на вебинарах, приуроченных к старту онлайн-курса «Базы данных» в OTUS.

✅ 1 августа — «Системные таблицы PostgreSQL»
Изучим основные системные таблицы и их устройство.

✅ 16 августа — «MySQL NDB cluster»
Рассмотрим шардинг и особенности архитектуры

🎁 На занятии 16 августа спикер Евгений Аристов, архитектор баз данных PostgreSQL, разыграет свою книгу «PostgreSQL 14. Оптимизация, Kubernetes, кластера, облака».

👉 РЕГИСТРАЦИЯ
https://otus.pw/5PHL/

Нативная интеграция. Информация о продукте www.otus.ru

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

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

Java

Что такое главный метод? Что такое public static void main? Что за PSVM?
Что такое статический модификатор? Как работает static поле, метод, класс?
Метод hashCode: что делает? Как переопределить? Чем отличается от equals?
Ключевые слова this и super: зачем нужны? Чем отличаются?
Какой порядок инициализации в Java?
Как работает кеширование в пуле чисел? 💾 Java Integer Pool
final переменные
Чем отличается final метод от обычного?
Зачем нужен final класс в Java?
Модификатор final: зачем нужен в Java? Как он меняет классы, методы и переменные?

источник

👉@BookJava

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

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

Java. Об Iterator и Iterable c примерами

В данном видео объясняется что такое паттерн Iterator и интерфейс Iterable в языке программирования Java. На примерах показывается для чего нужен Iterator и как его использовать. Рассматривается так же вопрос удаления и вставки элементов в LinkedList за константное время.

GitHub

источник

👉@BookJava

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

Библиотека 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 [Java Annotations | Reflection api]

Создаем собственные аннотации. Изучаем из чего состоит аннотация, для чего они нужны и как их обрабатывать. Николай Бунис, senior инженер, расскажет вам про основные составляющие аннотации, ее жизненный цикл и область применения. Используя Reflection Api разберемся как создать свою аннотацию и напишем обработчик наших аннотаций.

В качестве примера возьмем всем знакомую ситуацию когда нужно провалидировать поля класса на минимальную и максимальную длину, соответствие email шаблону и тд. Существует 2 основных варианта как это сделать. Первый это писать каждый раз логику валидации для каждого конкретного класса. Ну а второй вариант это сделать обработчик аннотаций и аннотировать поля класса. Таким образом логика будет написана единожды. Именно этот пример мы и будем разбирать в нашем видео.

источник

👉@BookJava

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

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

Принцип инверсии зависимости - SOLID в деталях

Принцип инверсии зависимости гласит: "Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики". В этом ролике я постарался наглядно продемонстрировать применение этого принципа.

В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.

источник

👉@BookJava

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

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

Java. Префиксное дерево. Основные операции, сохранение в файл, практическое применение.

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

00:00 - Вступление
00:26 - Применение в приложении
01:58 - Построение дерева и операции с ним
06:33 - Построение префиксного дерева на Java
11:22 - Операции с префиксным деревом на Java
16:31 - Сохранение дерева в файл
20:51 - Загрузка дерева из файла
25:32 - Экономия по сравнению со списком
27:12 - Замечание о Null-безопасности
28:26 - Заключение

источник

👉@BookJava

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

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

🤖 Сертификация Oracle Java Programmer (OCAJP), как готовиться к экзамену

🔵Узнаем 10 августа в 20:00 мск на открытом уроке онлайн курса «Углублённое изучение Java» от OTUS.

В рамках вебинара мы рассмотрим:
- Прошлое и настоящее сертификации Java
- Что где и как можно и нужно сдавать
- Форма и содержание экзамена

Разберёмся, почему наш курс — лучшая и самая удобная возможность подготовиться к сдаче экзамена, если вы не собираетесь готовиться самостоятельно.

🟠Это отличная возможность перенять опыт преподавателя и посмотреть на процесс обучения изнутри.
Оплата курса возможна любым удобным для вас способом.

➡️ Для участия в вебинаре зарегистрируйтесь: https://otus.pw/cvl4/

Нативная интеграция. Информация о продукте www.otus.ru

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

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

Java 9.0 to 17.0 Cookbook: A Roadmap with Instructions for the Effective Implementation of Features, Codes, and Programs
Автор: Tejaswini Jog (2022)

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

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

Скачать

👉 @java_360

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

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

⚡️Скорость разработки ПО падает по мере роста размера проекта. Инструменты разработки не могут изменить тенденции, а лишь замедлить и отсрочить неизбежное. SOLID является одной из практик, которая гарантирует неизменность скорости разработки.

Узнайте больше про SOLID-принципы на бесплатном вебинаре онлайн-курса «Архитектура и шаблоны проектирования» в Отус — «SOLID как условие постоянной скорости разработки»: регистрация

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

🔥Экспертизой поделится Евгений Тюменцев — опытный директор компании по разработке программного обеспечения.

— После вебинара оплатить курс по спеццене можно также в рассрочку.

Нативная интеграция. Информация о продукте www.otus.ru

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

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

🔥 Переходи на новый уровень в Java и разнообразь свою работу!

Пройди тест по Java и проверь как хорошо ты знаешь язык.

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

👉 ПРОЙТИ ТЕСТИРОВАНИЕ: https://otus.pw/VlGLx/

💪🏻Хочешь протестировать учебный процесс заранее? Регистрируйся на бесплатное демо-занятие:

📢📢 Регистрация на вебинар 01 Августа в 20:00 - «Реализация упрощенного http сервера на Java Core»

Нативная интеграция. Информация о продукте www.otus.ru

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

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

Вопросы-ответы собеседования

Можно ли создать экземпляр абстрактного класса?
Что такое интерфейс?
Как вызвать нестатический метод в статическом?
Чем отличаются параметры от аргументов в методе?
Что такое конструктор? Как его создать и вызвать?
Что такое параметризованный конструктор?
Что такое конструктор по умолчанию?
Что такое приватный конструктор? Зачем он закрытый?
Что такое статическая переменная? Как работает static поле?
Что такое статический метод? Как вызвать static метод?

источник

👉@BookJava

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

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

Что такое livelock?

livelock – тип взаимной блокировки, при котором несколько потоков выполняют бесполезную работу, попадая в зацикленность при попытке получения каких-либо ресурсов. При этом их состояния постоянно изменяются в зависимости друг от друга. Фактической ошибки не возникает, но КПД системы падает до 0. Часто возникает в результате попыток предотвращения deadlock.

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

👉@BookJava

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

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

🔥 Международный уровень Java. Курс для работы в мировых IT-проектах и сертификация OCAJP

🚀 Стартует набор на онлайн курс «Углублённое изучение Java» от OTUS. Продолжительность обучения 5 месяцев.

Особенности курса:
- Интерактивный и практический подход
- Подготовка к собеседованиям
- Полное погружение в Java
- Подготовка к сертификации Oracle Java Programmer (OCAJP)

➡️ Оставляйте заявку и присоединяйтесь к группе: https://otus.pw/6TmP/

Нативная интеграция. Информация о продукте www.otus.ru

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

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

Сборка мусора в неисправных JVM, проактивный подход

Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно работают, обходясь выделенной им памятью, иногда «запрос смерти» или ошибка в самом хранилище данных приводят к перерасходу памяти, что может спровоцировать лишние циклы сборки мусора или даже привести к исчерпанию памяти в JVM.

https://netflixtechblog.medium.com/introducing-jvmquake-ec944c60ba70

👉@BookJava

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

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

Как на самом деле работает Java ClassLoader system? (с картинками)

Когда я впервые погрузился в мир загрузчиков классов Java, это было ответом на любопытный вопрос. Популярные источники (Wikipedia, Baeldung, DZone) содержат устаревшую, иногда противоречивую друг другу информацию, и это несоответствие послужило толчком для написания этой статьи — поиска ясности в лабиринте ClassLoader System.

Будучи разработчиком Java, вы наверняка сталкивались с ClassNotFoundException или NoClassDefFoundError — загадочными сообщениями, которые на мгновение останавливают наш процесс разработки. Класс не найден — понятно по названию, но не найден где? Кто и как его ищет, куда доставляет?

https://habr.com/ru/articles/748758/

👉@BookJava

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

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

⁉️ Как реализовать упрощенный http сервер на Java Core?

📢📢 Узнаем 1 августа в 20:00 мск на открытом уроке онлайн-курса «Java Developer. Professional» в OTUS.

Любому веб-разработчику важно понимать, как внутри работает http-сервер. На вебинаре разберем как с помощью стандартной Java библиотеки разработать небольшой http сервер, что позволит вам лучше понять принципы работы application server'ов.

🟠Это отличная возможность перенять опыт преподавателя и посмотреть на процесс обучения изнутри.
Оплата курса возможна любым удобным для вас способом.

➡️ Для участия в вебинаре зарегистрируйтесь: https://otus.pw/oX34/

Нативная интеграция. Информация о продукте www.otus.ru

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

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

Локация следующего Tech talk by Sber — Новосибирск! 📍

Да-да, уже 27 июля IT-специалисты Новосибирска получат классную возможность узнать больше о том, как реализуются задачи в Сбере, пообщаться с топовыми экспертами и завести интересные знакомства.

В программе митапа — доклады только на актуальные темы:

✔️ Дмитрий Дрожжин расскажет о том, зачем Сбер изобрел свой язык программирования и как его используют в проектах.

✔️ Марат Юлдашев раскроет все секреты развертывания приложений на стенды с помощью ARGOCD.

✔️ А Владимир Медин поделится историей тернистого пути Jenkins в Enterprise и расскажет, как специалистам Сбера удалось найти решение даже при пиковой нагрузке.

В перерывах вас ждет неформальное общение и вкусный кейтеринг. Регистрируйтесь по ссылке — встречаемся 27 июля в 18:00 по адресу: Food Factory, ул. Коммунистическая, 14 👌

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

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

Тимлид в команду разработки на Java

Гибридный формат в городах РФ, Сербии, Казахстана, Армении, Беларуси.

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

Ищем опытного тимлида в команду разработки на Java, который поможет спроектировать и реализовать новые компоненты системы, будет руководить командой, нанимать новых инженеров и развивать их.

Наш стек: Java 11, Spring Boot, Reactor, HTTP и gRPC API, Kotlin, PostgreSQL.

Мы ждем, что вы:
- разрабатывали на Java больше трех лет;
- пишете эффективный и понятный код;
- управляли командой разработки; нанимали людей и знаете, как правильно развивать разработчиков;
- можете вести за собой младших участников команды, делиться с ними знаниями и опытом;
- знаете, как устроены веб-сервисы;
- работали с реляционными и нереляционными базами данных и понимаете их устройство, *nix-подобными ОС.
- знаете популярные Java-библиотеки и фреймворки (Spring Boot, jUnit, Netty, Reactor);

Условия:
- сильная команда, с которой можно расти;
- зарплата на уровне рынка и выше;
- премии каждые полгода для всех, кто успешно прошёл ревью;
- расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей;
- гибкий график работы.

Откликнуться: https://goo.su/5inhyN или в ТГ: @Karm_Anna

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

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

lfa Backend Stories Meetup #2 🔥

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

🔺 Александр Карташов, Senior Java Developer, расскажет про технологии межсервисного взаимодействия на примере проектов Альфа-Банка.

🔺 Василий Рыбин, Java Developer, познакомит с архитектурным паттерном API Gateway.

🔺 Павел Агалецкий, Lead Engineer в Авито, рассмотрит механики валидации контрактов внутренних API и протокол межсервисного взаимодействия в Авито.

🔺 Екатерина Попкова, Java/Kotlin Developer, расскажет, что такое Сага и как его можно реализовать на Camunda Platform 8.

✔️ Зарегистрироваться на митап и узнать больше о программе

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

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

🥷 Готов выбрать светлую сторону силы, юный джавист?

Эксперты OTUS приготовили для тебя полный сложной практики онлайн-курс «Java Developer. Professional», который расширит твои возможности использования Java.

🟠За 6 месяцев ты прокачаешь алгоритмы и сборщики мусора, байт-код и classloader, паттерны и тестирование, работу с окружением — логирование, jdbc и Hibernate, библиотеки и фреймворки, многопоточность и многое другое.

🦸🏼‍♂️Компании-партнеры ждут, когда ты овладеешь этим мастерством. Проходи вступительный тест и помни большая сила — большая ответственность.

👉 ПРОЙТИ ТЕСТ: https://otus.pw/VlGLx/

Нативная интеграция. Информация о продукте www.otus.ru

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

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

Top Core Java Interview Questions for Freshers and Experienced

https://www.edureka.co/blog/interview-questions/java-interview-questions/

👉@BookJava

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