Spring 6 Recipes: A Problem-Solution Approach to Spring Framework, Fifth Edition (2023) PDF
This in-depth Spring-based Java developer code reference has been updated and now solves many of your Spring Framework 6 problems using reusable, complete and real-world working code examples. Spring 6 Recipes (5th Edition) now includes Spring Native which speeds up your Java-based Spring Framework built enterprise, native cloud, web applications and microservices. It also has been updated to now include Spring R2DBC for Reactive Relational Database Connectivity, a specification to integrate SQL databases, like PostgreSQL, MySQL and more, using reactive drivers.
Furthermore, this book includes additional coverage of WebFlux for more reactive Spring web applications. Reactive programming allows you to build systems that are resilient to high load, especially common in the more complex enterprise, native cloud applications that Spring Framework lets you build.
This in-depth Spring-based Java developer code reference has been updated and now solves many of your Spring Framework 6 problems using reusable, complete and real-world working code examples. Spring 6 Recipes (5th Edition) now includes Spring Native which speeds up your Java-based Spring Framework built enterprise, native cloud, web applications and microservices. It also has been updated to now include Spring R2DBC for Reactive Relational Database Connectivity, a specification to integrate SQL databases, like PostgreSQL, MySQL and more, using reactive drivers.
Furthermore, this book includes additional coverage of WebFlux for more reactive Spring web applications. Reactive programming allows you to build systems that are resilient to high load, especially common in the more complex enterprise, native cloud applications that Spring Framework lets you build.
👍13❤7🔥2
В данном видео рассмотрен пример создания REST API с использованием следующих технологий:
- Spring Boot 3
- Spring Security (JWT)
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Создание REST API с использованием Spring WebFlux и Security
В данном видео рассмотрен пример создания REST API с использованием следующих технологий:
- Spring Boot 3
- Spring Security (JWT)
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
Ссылка на Github репозиторий:
https://github.…
- Spring Boot 3
- Spring Security (JWT)
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
Ссылка на Github репозиторий:
https://github.…
👍25❤9🔥4🎉1
Современная программная инженерия. ПО в эпоху эджайла и непрерывного развертывания (2023) PDF
Дэвид Фарли, легендарный разработчик и создатель continuous delivery, рассказывает о фундаментальных принципах разработки современного ПО. Пора познакомиться с наиболее эффективными и грамотными методами управления рабочими процессами, которые позволят повысить качество ваших приложений, вашей жизни и жизни ваших коллег.
Ключевые концепции, лежащие в основе эффективной разработки ПО, — это непрерывное обучение и управление сложностью. Дэвид Фарли анализирует их и формулирует принципы, следование которым приведет к улучшению дизайна ПО и качества кода, а также методы и подходы, доказавшие свою эффективность и приводящие к успеху. Речь идет не об абстракциях, вы освоите реальные приемы, которыми пользуются опытные разработчики ПО. Эти техники эмпирические и итеративные, они основаны на обратной связи и сосредоточены на выполнении кода, то есть соответствуют всем требованиям современной разработки.
Дэвид Фарли, легендарный разработчик и создатель continuous delivery, рассказывает о фундаментальных принципах разработки современного ПО. Пора познакомиться с наиболее эффективными и грамотными методами управления рабочими процессами, которые позволят повысить качество ваших приложений, вашей жизни и жизни ваших коллег.
Ключевые концепции, лежащие в основе эффективной разработки ПО, — это непрерывное обучение и управление сложностью. Дэвид Фарли анализирует их и формулирует принципы, следование которым приведет к улучшению дизайна ПО и качества кода, а также методы и подходы, доказавшие свою эффективность и приводящие к успеху. Речь идет не об абстракциях, вы освоите реальные приемы, которыми пользуются опытные разработчики ПО. Эти техники эмпирические и итеративные, они основаны на обратной связи и сосредоточены на выполнении кода, то есть соответствуют всем требованиям современной разработки.
❤12👍8🔥2
Согласно Кнуту и Кормену существует две основных реализации хэш-таблицы: на основе открытой адресации и на основе метода цепочек. Как реализована HashMap? Почему, по вашему мнению, была выбрана именно эта реализация? В чем плюсы и минусы каждого подхода?
HashMap в Java реализуется на основе метода цепочек (loopback hashing). Этот подход заключается в том, что каждый элемент хэш-таблицы хранится в отдельном блоке памяти, называемом хеш-блоком. Хеш-блоки связаны между собой, но не связаны друг с другом физически. Это означает, что если один хеш-блок изменяется, то все связанные с ним хеш-блоки также изменятся.
Преимущества использования метода цепочек в HashMap заключаются в следующем:
1. Простота реализации: Метод цепочек позволяет легко добавлять, удалять и изменять элементы хэш-таблицы.
2. Высокая производительность: Метод цепочек обеспечивает высокую производительность при поиске элементов в хеш-таблице, так как он работает за константное время O(1).
3. Устойчивость к коллизиям: Метод цепочек гарантирует, что два разных ключа не будут иметь одинаковый хеш-код, что делает хеш-таблицу устойчивой к коллизиям.
Однако, есть и некоторые недостатки использования метода цепочек в HashMap:
1. Сложность чтения: При использовании метода цепочек чтение элементов хэш-таблицы может быть сложным, так как каждый хеш-блок связан с другими хеш-блоками, но не связан непосредственно с самим элементом.
2. Ограниченность размера: Метод цепочек не поддерживает добавление элементов в хеш-таблицу больше, чем размер самого хеш-блока. Это означает, что если вы попытаетесь добавить элемент в хеш-таблицу, который превышает ее максимальный размер, то вы получите ошибку.
3. Неэффективность при работе с большими объемами данных: Метод цепочек может быть менее эффективным при работе с большими объемами данных, так как он требует большого количества дополнительной памяти для хранения хеш-блоков.
В итоге, выбор метода цепочек в HashMap был выбран из-за простоты реализации, высокой производительности, устойчивости к коллизиям и возможности работы с большими объемами данных. Однако, при работе с большими объемами данных использование метода цепочек может быть менее эффективным.
HashMap в Java реализуется на основе метода цепочек (loopback hashing). Этот подход заключается в том, что каждый элемент хэш-таблицы хранится в отдельном блоке памяти, называемом хеш-блоком. Хеш-блоки связаны между собой, но не связаны друг с другом физически. Это означает, что если один хеш-блок изменяется, то все связанные с ним хеш-блоки также изменятся.
Преимущества использования метода цепочек в HashMap заключаются в следующем:
1. Простота реализации: Метод цепочек позволяет легко добавлять, удалять и изменять элементы хэш-таблицы.
2. Высокая производительность: Метод цепочек обеспечивает высокую производительность при поиске элементов в хеш-таблице, так как он работает за константное время O(1).
3. Устойчивость к коллизиям: Метод цепочек гарантирует, что два разных ключа не будут иметь одинаковый хеш-код, что делает хеш-таблицу устойчивой к коллизиям.
Однако, есть и некоторые недостатки использования метода цепочек в HashMap:
1. Сложность чтения: При использовании метода цепочек чтение элементов хэш-таблицы может быть сложным, так как каждый хеш-блок связан с другими хеш-блоками, но не связан непосредственно с самим элементом.
2. Ограниченность размера: Метод цепочек не поддерживает добавление элементов в хеш-таблицу больше, чем размер самого хеш-блока. Это означает, что если вы попытаетесь добавить элемент в хеш-таблицу, который превышает ее максимальный размер, то вы получите ошибку.
3. Неэффективность при работе с большими объемами данных: Метод цепочек может быть менее эффективным при работе с большими объемами данных, так как он требует большого количества дополнительной памяти для хранения хеш-блоков.
В итоге, выбор метода цепочек в HashMap был выбран из-за простоты реализации, высокой производительности, устойчивости к коллизиям и возможности работы с большими объемами данных. Однако, при работе с большими объемами данных использование метода цепочек может быть менее эффективным.
👍20❤9🔥3
Можно ли считать Final переменную константой?
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
👍15
В этом ролике автор рассказывает о компонентах и реализации аутентификации в Spring Security.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Аутентификация - Spring Security в деталях
В этом ролике я рассказываю о компонентах и реализации аутентификации в Spring Security.
00:00 Вступление
01:45 Приземляется Ил-76ТД
02:44 Идентификация, аутентификация и авторизация
06:15 Интеграция Spring Security
08:36 Basic-аутентификация
16:24 Basic…
00:00 Вступление
01:45 Приземляется Ил-76ТД
02:44 Идентификация, аутентификация и авторизация
06:15 Интеграция Spring Security
08:36 Basic-аутентификация
16:24 Basic…
👍18🔥11❤1
В этом ролике автор рассказывает о способах получения доступа к аутентифицированному пользователю
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Получение информации о пользователе - Spring Security в деталях
В этом ролике я рассказываю о способах получения доступа к аутентифицированному пользователю
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes…
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes…
👍12
Learning Java: An Introduction to Real-World Programming with Java, 6th Edition (Final) (2023) True ePUB
Ideal for working programmers new to Java, this best-selling book guides you through the language features and APIs of Java 21. Through fun, compelling, and realistic examples, authors Marc Loy, Patrick Niemeyer, and Dan Leuck introduce you to Java's fundamentals, including its class libraries, programming techniques, and idioms, with an eye toward building real applications.
This updated sixth edition expands the content to continue covering lambdas and streams, and shows you how to use a functional paradigm in Java. You'll learn about the latest Java features introduced since the book's fifth edition, from JDK 15 through 21. You'll also take a deep dive into virtual threads (introduced as Project Loom in Java 19).
Ideal for working programmers new to Java, this best-selling book guides you through the language features and APIs of Java 21. Through fun, compelling, and realistic examples, authors Marc Loy, Patrick Niemeyer, and Dan Leuck introduce you to Java's fundamentals, including its class libraries, programming techniques, and idioms, with an eye toward building real applications.
This updated sixth edition expands the content to continue covering lambdas and streams, and shows you how to use a functional paradigm in Java. You'll learn about the latest Java features introduced since the book's fifth edition, from JDK 15 through 21. You'll also take a deep dive into virtual threads (introduced as Project Loom in Java 19).
👍11🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Яндекс запустил канал ТЕХНО, в котором простым языком рассказывает о том, как устроен мир технологий. Внутри всё то, что мы так любим: нейросети, роботы, чат-боты, голосовые помощники и многое другое.
Из любопытного:
— Что такое промпт и как его правильно формулировать
— Почему на первых клавиатурах не было 0 и 1
— Чем занимается преподаватель для нейросети
— И наконец, займут ли ваше рабочее место роботы и ИИ
Подписывайтесь тут 👉 https://t.me/techno_yandex!
Из любопытного:
— Что такое промпт и как его правильно формулировать
— Почему на первых клавиатурах не было 0 и 1
— Чем занимается преподаватель для нейросети
— И наконец, займут ли ваше рабочее место роботы и ИИ
Подписывайтесь тут 👉 https://t.me/techno_yandex!
👍7❤2
Программирование на Kotlin для Android (2023) PDF, djvu
Книга посвящена разработке мобильных приложений для Android на языке Kotlin. Рассмотрены основные структуры и элементы языка, подробно описан фреймворк коллекций Kotlin. Показана архитектура операционной системы Android, приложений и их контейнеров, изучаются основы параллельного программирования. Рассказано о потокобезопасности, работе с параллелизмом с использованием обратных вызовов. Отдельная глава посвящена специальным конструкциям Kotlin — сопрограммам, с акцентом на структурированный параллелизм. Рассматриваются каналы, использование потоков для асинхронной обработки данных. Изучаются вопросы повышения производительности приложений с использованием инструментов профилирования Android и снижения потребления ресурсов за счет оптимизации производительности.
Книга посвящена разработке мобильных приложений для Android на языке Kotlin. Рассмотрены основные структуры и элементы языка, подробно описан фреймворк коллекций Kotlin. Показана архитектура операционной системы Android, приложений и их контейнеров, изучаются основы параллельного программирования. Рассказано о потокобезопасности, работе с параллелизмом с использованием обратных вызовов. Отдельная глава посвящена специальным конструкциям Kotlin — сопрограммам, с акцентом на структурированный параллелизм. Рассматриваются каналы, использование потоков для асинхронной обработки данных. Изучаются вопросы повышения производительности приложений с использованием инструментов профилирования Android и снижения потребления ресурсов за счет оптимизации производительности.
👍10🔥5
Как работает HashMap при попытке сохранить в него два элемента по ключам с одинаковым hashCode(), но для которых equals() == false?
По значению
По значению
hashCode()
вычисляется индекс ячейки массива, в список которой этот элемент будет добавлен. Перед добавлением осуществляется проверка на наличие элементов в этой ячейке. Если элементы с таким hashCode()
уже присутствует, но их equals()
методы не равны, то элемент будет добавлен в конец списка.👍16🔥6
Какое начальное количество корзин в HashMap?
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
👍14
Mastering Java: 100+ Solved and Commented Exercises to Accelerate your Learning (2023) PDF
Exercise your programming logic skills in Java with the book "Mastering Java: 100+ Solved and Commented Exercises to Accelerate Your Learning".
In this book, over 100 programming logic exercises are presented, all solved and commented. In many exercises, multiple solutions are provided so that you can compare different ways of solving a programming problem.
Who is this book for?
This book is aimed at people who are starting to program and need to develop their programming logic skills using the Java language.
Exercise your programming logic skills in Java with the book "Mastering Java: 100+ Solved and Commented Exercises to Accelerate Your Learning".
In this book, over 100 programming logic exercises are presented, all solved and commented. In many exercises, multiple solutions are provided so that you can compare different ways of solving a programming problem.
Who is this book for?
This book is aimed at people who are starting to program and need to develop their programming logic skills using the Java language.
👍9🔥1
Если вам не чужды такие понятия как NFS-кластер, PaceMaker и SELinux — этот туториал для вас
Девопсы из РТЛабс (разработчик Госуслуг) собрали рецепт отказоустойчивого файлового хранилища. Реализовывали всё это с помощью PaceMaker — с общим диском, поддержкой кворума, демона SDB и протокола NFS
Статья сложная, но подробная — специально для тех, кто любит технические детали
Остались вопросы? Задавайте их в комментариях к материалу
#промо Информация предоставлена АО "РТ Лабс"
Девопсы из РТЛабс (разработчик Госуслуг) собрали рецепт отказоустойчивого файлового хранилища. Реализовывали всё это с помощью PaceMaker — с общим диском, поддержкой кворума, демона SDB и протокола NFS
Статья сложная, но подробная — специально для тех, кто любит технические детали
Остались вопросы? Задавайте их в комментариях к материалу
#промо Информация предоставлена АО "РТ Лабс"
👍7🔥4❤2
Почему нельзя использовать byte[] в качестве ключа в HashMap?
Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному
Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному
Object.hashCode()
на основании адреса массива). Так же у массивов не переопределен equals
и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента.👍19🔥3❤2
В этом ролике автор рассказывает о точках входа аутентификации
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Точки входа аутентификации - Spring Security в деталях
В этом ролике я рассказываю о точках входа аутентификации
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes
Донаты в Boosty: ht…
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes
Донаты в Boosty: ht…
👍8
Какова роль equals() и hashCode() в HashMap?
hashCode
позволяет определить корзину для поиска элемента, а equals
используется для сравнения ключей элементов в списке корзины и искомого ключа.👍24❤2🔥2
В этом ролике автор рассказывает об источниках информации о пользователях, способе реализации такого источника при помощи JDBC и его использовании.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Источники информации о пользователях - Spring Security в деталях
В этом ролике я рассказываю об источниках информации о пользователях, способе реализации такого источника при помощи JDBC и его использовании.
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/…
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/…
❤5👍4🔥3