#Собес
🤔 Зачем нужен Spring Framework?
Spring Framework - это мощный инструмент для упрощения разработки приложений. Он предоставляет механизм управления зависимостями (Dependency Injection), гибкость конфигурации, интеграцию с различными технологиями и поддержку создания веб-приложений. Благодаря своей модульности и широким возможностям, Spring подходит как для небольших проектов, так и для крупных корпоративных систем.
👉 Новости 👉 База вопросов
Spring Framework - это мощный инструмент для упрощения разработки приложений. Он предоставляет механизм управления зависимостями (Dependency Injection), гибкость конфигурации, интеграцию с различными технологиями и поддержку создания веб-приложений. Благодаря своей модульности и широким возможностям, Spring подходит как для небольших проектов, так и для крупных корпоративных систем.
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤓 23 шаблона проектирования для 99% разработчиков на Java
В этом исчерпывающем руководстве мы изучим все важные шаблоны ООП для написания кода.
Шаблоны проектирования — это испытанный способ решения проблемы в заданном контексте. Они скорее открыты, нежели придуманы, что очевидно и из применения слова «шаблон». Используя шаблон проектирования, вы получаете знания всех сообществ для безопасного решения этой проблемы.
Читать статью
👉 Новости 👉 База вопросов
В этом исчерпывающем руководстве мы изучим все важные шаблоны ООП для написания кода.
Шаблоны проектирования — это испытанный способ решения проблемы в заданном контексте. Они скорее открыты, нежели придуманы, что очевидно и из применения слова «шаблон». Используя шаблон проектирования, вы получаете знания всех сообществ для безопасного решения этой проблемы.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
VK
23 шаблона проектирования для 99% разработчиков на Java
В этом исчерпывающем руководстве мы изучим все важные шаблоны ООП для написания кода.
#полезное
🥺 Графовые алгоритмы — шпаргалка для Java Developer
Сводная таблица по всем основным алгоритмам на графах: обход, кратчайшие пути, минимальные остовные деревья, циклы, топология, компоненты связности и продвинутые техники
👉 Новости 👉 База вопросов
Сводная таблица по всем основным алгоритмам на графах: обход, кратчайшие пути, минимальные остовные деревья, циклы, топология, компоненты связности и продвинутые техники
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Какой жизненный цикл Spring Beans?
Жизненный цикл Spring Bean состоит из этапов создания, настройки зависимостей, инициализации, использования и уничтожения. Контейнер автоматически выполняет все эти шаги, вызывая методы, такие как
👉 Новости 👉 База вопросов
Жизненный цикл Spring Bean состоит из этапов создания, настройки зависимостей, инициализации, использования и уничтожения. Контейнер автоматически выполняет все эти шаги, вызывая методы, такие как
@PostConstruct
для настройки перед использованием и @PreDestroy
ДЛЯ завершения работы. Пользователи могут настраивать этапы жизненного цикла через интерфейсы или аннотации.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
Особенности Java Records
🟠 Снижение шаблонного кода — Нет необходимости вручную писать конструкторы,
геттеры,
🟠 Неизменяемы по умолчанию — все поля являются final
🟠 Эффективны по памяти — JVM оптимизирует выделение памяти.
🟠 Без дополнительных зависимостей — являются частью Java с версии 14
🟠 Инкапсуляция — данные хорошо структурированы и неизменяемы.
Ограничения Java Records
🟠 Нет сеттеров — поля final и не могут быть изменены
🟠 Нельзя расширять классы — Records неявно являются final и не могут наследоваться от других классов.
🟠 Ограниченная настройка — не поддерживают аннотации вроде
👉 Новости 👉 База вопросов
Особенности Java Records
геттеры,
equals(), hashCode() и toString()
Ограничения Java Records
@JsonIgnore
для полейPlease open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 hibernate-orm — популярный фреймворк для Java, который упрощает взаимодействие между объектно-ориентированными приложениями и реляционными базами данных!
Hibernate реализует спецификацию JPA (Java Persistence API) и предоставляет дополнительные возможности для работы с базами данных, такие как кэширование и трансакции.
Гитхаб
👉 Новости 👉 База вопросов
Hibernate реализует спецификацию JPA (Java Persistence API) и предоставляет дополнительные возможности для работы с базами данных, такие как кэширование и трансакции.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Динамический массив
В Java динамический массив представляет собой структуру данных, которая позволяет хранить и управлять коллекцией элементов переменного размера.
Он реализуется с помощью класса ArrayList. ArrayList представляет собой реализацию списка, который может изменять свой размер по мере необходимости.
👉 Новости 👉 База вопросов
В Java динамический массив представляет собой структуру данных, которая позволяет хранить и управлять коллекцией элементов переменного размера.
Он реализуется с помощью класса ArrayList. ArrayList представляет собой реализацию списка, который может изменять свой размер по мере необходимости.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое Bean?
Bean в Spring - это объект, который управляется контейнером Spring loC (Inversion of Control). Бины обычно создаются, настраиваются и используются для инкапсуляции бизнес-логики, управления данными или предоставления сервисов. Контейнер Spring автоматически управляет жизненным циклом бина, его зависимостями и настройками.
👉 Новости 👉 База вопросов
Bean в Spring - это объект, который управляется контейнером Spring loC (Inversion of Control). Бины обычно создаются, настраиваются и используются для инкапсуляции бизнес-логики, управления данными или предоставления сервисов. Контейнер Spring автоматически управляет жизненным циклом бина, его зависимостями и настройками.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👨💻 Сортировка пузырьком
Один из самых простых алгоритмов сортировки
👉 Новости 👉 База вопросов
Один из самых простых алгоритмов сортировки
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Миграция от монолита к микросервисам в Spring Boot Java
🟠 Определите границы контекста —> используйте Domain-Driven Design (DDD) для логического разделения модулей
🟠 Модульность внутри приложения —> применяйте модули и пакеты Spring для изоляции сервисов
🟠 Вынос в микросервисы —> начинайте перенос модулей (например, пользователь, заказы) в отдельные сервисы
🟠 Внедрение API Gateway и сервис-дискавери —> используйте Spring Cloud Gateway и Eureka/Nacos
🟠 Безопасность взаимодействия —> добавьте уровни безопасности OAuth2/JWT
🟠 CI/CD пайплайн —> автоматизируйте сборку, тестирование и деплой с помощью Jenkins/GitHub Actions
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Уровни доступа при наследовании
Подкласс:
private —> Не видно в подклассе
default —> Видно, если в одном пакете
protected —> Видно в подклассе
public —> Видно всем
👉 Новости 👉 База вопросов
Подкласс:
private —> Не видно в подклассе
default —> Видно, если в одном пакете
protected —> Видно в подклассе
public —> Видно всем
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Какие Spring Scope знаешь?
Основные области видимости Spring: Singleton, Prototype, Request, Session, Application, WebSocket.
👉 Новости 👉 База вопросов
Основные области видимости Spring: Singleton, Prototype, Request, Session, Application, WebSocket.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😴 ByteArrayOutput
Stream.writeTo()
Метод
👉 Новости 👉 База вопросов
Stream.writeTo()
Метод
ByteArrayOutputStream.writeTo()
позволяет записывать содержимое байтового массива (ByteArrayOutputStream
) напрямую в другой выходной поток (OutputStream
). Это удобно, когда нужно перенаправить данные, например, в файл или сетевой сокет, без промежуточного копирования.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 Pattern.asMatch
Predicate()
Метод
👉 Новости 👉 База вопросов
Predicate()
Метод
Pattern.asMatchPredicate()
, добавленный в Java 11, позволяет преобразовать регулярное выражение в предикат, который можно использовать для фильтрации потоков или проверки строк на полное совпадение с шаблоном.Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤯 Быстрее находите и устраняйте ошибки в коде с IntelliJIDEA
Используйте
Куда бы ни был установлен курсор, IDE сразу перенесёт вас к проблеме с полезными объяснениями и предложениями по быстрому исправлению
👉 Новости 👉 База вопросов
Используйте
⇧F2
(macOS) / Shift + F2
(Windows, Linux), чтобы переходить между проблемами.Куда бы ни был установлен курсор, IDE сразу перенесёт вас к проблеме с полезными объяснениями и предложениями по быстрому исправлению
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 В чем разница между = = и equals()?
Оператор
👉 Новости 👉 База вопросов
Оператор
==
сравнивает ссылки на объекты, то есть проверяет, указывают ли две переменные на один и тот же объект в памяти. Метод equals()
сравнивает содержимое объектов, что важно, если нужно проверить равенство значений объектов.Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 563. Binary Tree Tilt
Дано корневое значение бинарного дерева. Вернуть сумму значений наклонов всех узлов дерева.
Наклон узла дерева - это абсолютная разница между суммой всех значений узлов левого поддерева и всех значений узлов правого поддерева. Если у узла нет левого потомка, то сумма значений узлов левого поддерева считается равной 0. То же правило применяется, если у узла нет правого потомка.
Пример:
👨💻 Алгоритм:
1⃣ Определите рекурсивную функцию, которая вычисляет сумму значений узлов поддерева и наклон текущего узла.
2⃣ Для каждого узла вычислите сумму значений левого и правого поддерева, а также их наклон, добавляя наклон к общей сумме.
3⃣ Верните общую сумму наклонов всех узлов.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 563. Binary Tree Tilt
Дано корневое значение бинарного дерева. Вернуть сумму значений наклонов всех узлов дерева.
Наклон узла дерева - это абсолютная разница между суммой всех значений узлов левого поддерева и всех значений узлов правого поддерева. Если у узла нет левого потомка, то сумма значений узлов левого поддерева считается равной 0. То же правило применяется, если у узла нет правого потомка.
Пример:
Input: root = [1,2,3]
Output: 1
Explanation:
Tilt of node 2 : |0-0| = 0 (no children)
Tilt of node 3 : |0-0| = 0 (no children)
Tilt of node 1 : |2-3| = 1 (left subtree is just left child, so sum is 2; right subtree is just right child, so sum is 3)
Sum of every tilt : 0 + 0 + 1 = 1
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
public class Solution {
private int totalTilt = 0;
public int findTilt(TreeNode root) {
sumAndTilt(root);
return totalTilt;
}
private int sumAndTilt(TreeNode node) {
if (node == null) {
return 0;
}
int leftSum = sumAndTilt(node.left);
int rightSum = sumAndTilt(node.right);
int nodeTilt = Math.abs(leftSum - rightSum);
totalTilt += nodeTilt;
return node.val + leftSum + rightSum;
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 JWT vs Сессии — что выбрать для авторизации?
Кратко и наглядно разобрали плюсы и минусы двух популярных подходов
👉 Новости 👉 База вопросов
Кратко и наглядно разобрали плюсы и минусы двух популярных подходов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 Генератор надёжных паролей на Java
Пароль с заглавными, строчными, цифрами и спецсимволами? Легко.
С помощью библиотеки
👉 Новости 👉 База вопросов
Пароль с заглавными, строчными, цифрами и спецсимволами? Легко.
С помощью библиотеки
Passay
можно сгенерировать крепкий 10-символьный пароль буквально в пару строк.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Какая разница между String, StringBuffer и StringBuilder?
String - неизменяемый класс, каждый раз при изменении строки создаетсяновый обьект.
StringBuffer - изменяемый класс, потокобезопасен, но менее эффективен,чем StringBuilder.
StringBuilder - изменяемый класс, не является потокобезопасным, но более эффективен в однопоточных приложениях.
👉 Новости 👉 База вопросов
String - неизменяемый класс, каждый раз при изменении строки создаетсяновый обьект.
StringBuffer - изменяемый класс, потокобезопасен, но менее эффективен,чем StringBuilder.
StringBuilder - изменяемый класс, не является потокобезопасным, но более эффективен в однопоточных приложениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🏕 Типы выходных файлов, создаваемых при компиляции Java-кода
Native Image — > Нативный образ — > Работает без JVM
👉 Новости 👉 База вопросов
.class
— > Выполняется в JVM.jar
— > Упаковка кода для повторного использования.jmod
— >Поддерживает модульные Java-приложенияNative Image — > Нативный образ — > Работает без JVM
.war
— >Развёртывание веб-приложений на Java.ear
— > Развёртывание корпоративных Java-приложений.apk
— > Установка Java-приложений на Android.so
— > Компиляция в нативный код (shared object)Please open Telegram to view this post
VIEW IN TELEGRAM