#полезное
🥺 Графовые алгоритмы — шпаргалка для 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
#полезное
🤯 Лучшие советы по API REST
Скачать PDF на русском — здесь
Сохрани себе для быстрой шпаргалки
👉 Новости 👉 База вопросов
Скачать PDF на русском — здесь
Сохрани себе для быстрой шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM