Какие существуют модификаторы доступа?
private (приватный): члены класса доступны только внутри класса. Для обозначения используется служебное слово private.
default, package-private, package level (доступ на уровне пакета): видимость класса/членов класса только внутри пакета. Является модификатором доступа по умолчанию - специальное обозначение не требуется.
protected (защищённый): члены класса доступны внутри пакета и в наследниках. Для обозначения используется служебное слово protected.
public (публичный): класс/члены класса доступны всем. Для обозначения используется служебное слово public.
Последовательность модификаторов по возрастанию уровня закрытости: public, protected, default, private.
Во время наследования возможно изменения модификаторов доступа в сторону большей видимости (для поддержания соответствия принципу подстановки Барбары Лисков).
private (приватный): члены класса доступны только внутри класса. Для обозначения используется служебное слово private.
default, package-private, package level (доступ на уровне пакета): видимость класса/членов класса только внутри пакета. Является модификатором доступа по умолчанию - специальное обозначение не требуется.
protected (защищённый): члены класса доступны внутри пакета и в наследниках. Для обозначения используется служебное слово protected.
public (публичный): класс/члены класса доступны всем. Для обозначения используется служебное слово public.
Последовательность модификаторов по возрастанию уровня закрытости: public, protected, default, private.
Во время наследования возможно изменения модификаторов доступа в сторону большей видимости (для поддержания соответствия принципу подстановки Барбары Лисков).
🔥22👍9🎉1🍾1
Принцип инверсии зависимости гласит: "Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики". В этом ролике автор постарался наглядно продемонстрировать применение этого принципа.
В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Принцип инверсии зависимости - SOLID в деталях
Принцип инверсии зависимости гласит: "Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики". В этом ролике я постарался наглядно продемонстрировать применение…
👍20🔥9❤1
О чем говорит ключевое слово final?
Модификатор final может применяться к переменным, параметрам методов, полям и методам класса или самим классам.
• Класс не может иметь наследников;
• Метод не может быть переопределен в классах наследниках;
• Поле не может изменить свое значение после инициализации;
• Параметры методов не могут изменять своё значение внутри метода;
• Локальные переменные не могут быть изменены после присвоения им значения.
Модификатор final может применяться к переменным, параметрам методов, полям и методам класса или самим классам.
• Класс не может иметь наследников;
• Метод не может быть переопределен в классах наследниках;
• Поле не может изменить свое значение после инициализации;
• Параметры методов не могут изменять своё значение внутри метода;
• Локальные переменные не могут быть изменены после присвоения им значения.
👍38🔥5❤2
Создание микросервисов, 2-е издание (2023) PDF
По мере того как организации переходят от монолитных приложений к небольшим автономным микросервисам, распределенные системы становятся все более детализированными. Второе дополненное издание предлагает целостный взгляд на самые актуальные темы, в которых необходимо разбираться при создании и масштабировании архитектуры микросервисов, а также управлении ею. Вы познакомитесь с современными решениями для моделирования, интеграции, тестирования, развертывания и мониторинга собственных автономных сервисов. Примеры из реальной жизни показывают, как получить максимальную отдачу от этих архитектур. Книга будет полезна всем: от архитекторов и разработчиков до тестировщиков и специалистов по эксплуатации.
По мере того как организации переходят от монолитных приложений к небольшим автономным микросервисам, распределенные системы становятся все более детализированными. Второе дополненное издание предлагает целостный взгляд на самые актуальные темы, в которых необходимо разбираться при создании и масштабировании архитектуры микросервисов, а также управлении ею. Вы познакомитесь с современными решениями для моделирования, интеграции, тестирования, развертывания и мониторинга собственных автономных сервисов. Примеры из реальной жизни показывают, как получить максимальную отдачу от этих архитектур. Книга будет полезна всем: от архитекторов и разработчиков до тестировщиков и специалистов по эксплуатации.
👍24🔥5🤩3❤1
Data Structures in Java (2023) True PDF
This book is a fast-paced introduction to using data structures with Java. Numerous code samples and listings are included to support myriad topics. The first chapter contains a quick introduction to Java, along with Java code samples to check for leap years, find divisors of a number, and work with arrays of strings. The second chapter introduces recursion and usescode samples to check if a positive number is prime, to find the prime divisors of a positive integer, to calculate the GCD (greatest common divisor) and LCM (lowest common multiple) of a pair of positive integers. The third chapter contains Java code samples involving strings and arrays, such as finding binary substrings of a number, checking if strings contain unique characters, counting bits in a range of numbers, and how to compute XOR without using the XOR function. Chapters 4 through 6 include Java code samples involving search algorithms, concepts in linked lists, and tasks involving linked lists.
This book is a fast-paced introduction to using data structures with Java. Numerous code samples and listings are included to support myriad topics. The first chapter contains a quick introduction to Java, along with Java code samples to check for leap years, find divisors of a number, and work with arrays of strings. The second chapter introduces recursion and usescode samples to check if a positive number is prime, to find the prime divisors of a positive integer, to calculate the GCD (greatest common divisor) and LCM (lowest common multiple) of a pair of positive integers. The third chapter contains Java code samples involving strings and arrays, such as finding binary substrings of a number, checking if strings contain unique characters, counting bits in a range of numbers, and how to compute XOR without using the XOR function. Chapters 4 through 6 include Java code samples involving search algorithms, concepts in linked lists, and tasks involving linked lists.
👍21❤1
Какими значениями инициализируются переменные по умолчанию?
• Числа инициализируются 0 или 0.0;
• char — \u0000;
• boolean — false;
• Объекты (в том числе String) — null.
• Числа инициализируются 0 или 0.0;
• char — \u0000;
• boolean — false;
• Объекты (в том числе String) — null.
👍35❤🔥5🔥2
Что вы знаете о функции main()?
Метод
Метод
main() — точка входа в программу. В приложении может быть несколько таких методов. Если метод отсутствует, то компиляция возможна, но при запуске будет получена ошибка `Error: Main method not found`.👍33
В данном видео рассмотрен пример создания 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.…
👍46🔥6❤4
Объектно-ориентированное программирование в Java (2018) PDF
Учебное пособие посвящено объектно-ориентированному программированию на языке Java. Рассматриваются основные принципы объектно-ориентированного программирования, средства работы со структурами данных – коллекции и дженерики, принципы объектно-ориентированного дизайна.
Учебное пособие посвящено объектно-ориентированному программированию на языке Java. Рассматриваются основные принципы объектно-ориентированного программирования, средства работы со структурами данных – коллекции и дженерики, принципы объектно-ориентированного дизайна.
👍14😍1
Какие логические операции и операторы вы знаете?
•
•
•
•
•
•
•
•
•
•
•
•
•
& : Логическое AND (И);•
&& : Сокращённое AND;•
| : Логическое OR (ИЛИ);•
|| : Сокращённое OR;•
^ : Логическое XOR (исключающее OR (ИЛИ));•
! : Логическое унарное NOT (НЕ);•
&= : AND с присваиванием;•
|= : OR с присваиванием;•
^= : XOR с присваиванием;•
== : Равно;•
!= : Не равно;•
?: : Тернарный (троичный) условный оператор.👍38❤3
Можно ли считать Final переменную константой?
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
👍29❤1
Цифровая обработка изображений. Java и OpenCV (2019) PDF
В учебном пособии рассмотрены различные аспекты применения языка программирования Java для цифровой обработки изображений. В качестве базовой библиотеки алгоритмов компьютерного зрения использована OpenCV. Приводится описание процесса загрузки, фильтрации, обработки, сегментирования изображений и видео.
В учебном пособии рассмотрены различные аспекты применения языка программирования Java для цифровой обработки изображений. В качестве базовой библиотеки алгоритмов компьютерного зрения использована OpenCV. Приводится описание процесса загрузки, фильтрации, обработки, сегментирования изображений и видео.
👍13❤🔥1❤1🔥1
Что такое тернарный оператор выбора?
Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.
Выражение записывается в следующей форме:
Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.
Выражение записывается в следующей форме:
условие ? выражение1 : выражение2Если условие выполняется, то вычисляется выражение1 и его результат становится результатом выполнения всего оператора. Если же условие равно false, то вычисляется выражение2 и его значение становится результатом работы оператора. Оба операнда выражение1 и выражение2 должны возвращать значение одинакового (или совместимого) типа.
👍44
В этом ролике автор рассказывает о компонентах и реализации аутентификации в 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…
👍22❤1
Какие побитовые операции вы знаете?
•
•
•
•
•
•
•
•
•
•
•
•
•
•
~ : Побитовый унарный оператор NOT;•
& : Побитовый AND;•
&= : Побитовый AND с присваиванием;•
| : Побитовый OR;•
|= : Побитовый OR с присваиванием;•
^ : Побитовый исключающее XOR;•
^= : Побитовый исключающее XOR с присваиванием;•
>> : Сдвиг вправо (деление на 2 в степени сдвига);•
>>= : Сдвиг вправо с присваиванием;•
>>> : Сдвиг вправо без учёта знака;•
>>>= : Сдвиг вправо без учёта знака с присваиванием;•
<< : Сдвиг влево (умножение на 2 в степени сдвига);•
<<= : Сдвиг влево с присваиванием.👍19❤1🍾1
Kotlin заходит в Telegram!
Рассказываем про Kotlin — молодой язык родом из Питера, который вовсю теснит Java в мобильной и бэкенд-разработке.
Его официально поддерживает Google, используют Jira и Adobe, а разработчики топовых приложений для Android переписывают на Kotlin свои продукты. Советуем подписаться, чтобы узнавать больше!
Рассказываем про Kotlin — молодой язык родом из Питера, который вовсю теснит Java в мобильной и бэкенд-разработке.
Его официально поддерживает Google, используют Jira и Adobe, а разработчики топовых приложений для Android переписывают на Kotlin свои продукты. Советуем подписаться, чтобы узнавать больше!
👍7❤🔥1🔥1
В этом ролике автор рассказывает о способах получения доступа к аутентифицированному пользователю
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Получение информации о пользователе - Spring Security в деталях
В этом ролике я рассказываю о способах получения доступа к аутентифицированному пользователю
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://news.1rj.ru/str/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes…
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://news.1rj.ru/str/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes…
👍20🔥1
Где и для чего используется модификатор abstract?
Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.
Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.
Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
👍34