5 лучших задач на бинарные деревья для практики:
1. Обход в постфиксе (PostOrder) – https://bit.ly/3SdwWUd
2. Обход в префиксе (PreOrder) – https://bit.ly/3SbR4WL
3. Обход в инфиксе (InOrder) – https://bit.ly/3xUEsMf
4. Вывод всех листьев (Print leaf) – https://bit.ly/3BnrJCE
5. Уровень с максимальной суммой (Max sum level) – https://bit.ly/3qNv8FS
Отличная тренировка для собесов и укрепления понимания структур данных!🚘
👉 Java Portal
1. Обход в постфиксе (PostOrder) – https://bit.ly/3SdwWUd
2. Обход в префиксе (PreOrder) – https://bit.ly/3SbR4WL
3. Обход в инфиксе (InOrder) – https://bit.ly/3xUEsMf
4. Вывод всех листьев (Print leaf) – https://bit.ly/3BnrJCE
5. Уровень с максимальной суммой (Max sum level) – https://bit.ly/3qNv8FS
Отличная тренировка для собесов и укрепления понимания структур данных!
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое монолитная архитектура?
Монолитная архитектура — это единый унифицированный блок, где все компоненты приложения — от пользовательского интерфейса до бизнес-логики и доступа к данным — тесно интегрированы и разворачиваются вместе.
- Единый разворачиваемый модуль (обычно WAR или JAR файл)
- Общая память, база данных и кодовая база
- Проще в разработке и тестировании на ранних этапах
- Со временем может стать сложной и жёстко связанной
☑ Плюсы
- Удобна для небольших команд
- Меньше накладных расходов при разработке и деплое
- Прямая и понятная отладка
❌ Минусы
- Сложнее масштабировать отдельные компоненты
- Длительное время развёртывания (для крупных проектов)
- Трудно управлять при работе больших команд
👉 Java Portal
Монолитная архитектура — это единый унифицированный блок, где все компоненты приложения — от пользовательского интерфейса до бизнес-логики и доступа к данным — тесно интегрированы и разворачиваются вместе.
- Единый разворачиваемый модуль (обычно WAR или JAR файл)
- Общая память, база данных и кодовая база
- Проще в разработке и тестировании на ранних этапах
- Со временем может стать сложной и жёстко связанной
- Удобна для небольших команд
- Меньше накладных расходов при разработке и деплое
- Прямая и понятная отладка
- Сложнее масштабировать отдельные компоненты
- Длительное время развёртывания (для крупных проектов)
- Трудно управлять при работе больших команд
Please open Telegram to view this post
VIEW IN TELEGRAM
Особенности и ограничения Java Records
Особенности Java Records:
⏩ Снижение шаблонного кода — Нет необходимости вручную писать конструкторы,
геттеры,
⏩ Неизменяемы по умолчанию — все поля являются final
⏩ Эффективны по памяти — JVM оптимизирует выделение памяти.
⏩ Без дополнительных зависимостей — являются частью Java с версии 14
⏩ Инкапсуляция — данные хорошо структурированы и неизменяемы.
Ограничения Java Records:
⏩ Нет сеттеров — поля final и не могут быть изменены
⏩ Нельзя расширять классы — Records неявно являются final и не могут наследоваться от других классов.
⏩ Ограниченная настройка — не поддерживают аннотации вроде
👉 Java Portal
Особенности Java Records:
геттеры,
equals(), hashCode() и toString()
Ограничения Java Records:
@JsonIgnore
для полейPlease open Telegram to view this post
VIEW IN TELEGRAM
getDepartmentDeptName()
получает deptName
из связанной сущности Department
Please open Telegram to view this post
VIEW IN TELEGRAM
Понятие ошибки и исключения в Java
⏩ Error в Java — это серьёзная проблема, с которой программа не должна пытаться справляться. Обычно Error выбрасывается виртуальной машиной Java (JVM) и сигнализирует о неполадках, находящихся вне контроля программы, например, утечка памяти или переполнение стека
⏩ Exception в Java — это ситуация, которую программа может предусмотреть и обработать. Это ошибки, от которых можно восстановиться во время выполнения, используя конструкции обработки исключений, такие как
👉 Java Portal
try-catch
Please open Telegram to view this post
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
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Уровни доступа при наследовании
Подкласс:
private —> Не видно в подклассе
default —> Видно, если в одном пакете
protected —> Видно в подклассе
public —> Видно в подклассе
👉 Java Portal
Подкласс:
private —> Не видно в подклассе
default —> Видно, если в одном пакете
protected —> Видно в подклассе
public —> Видно в подклассе
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужен быстрый генератор OTP в Java?
Вот сниппет, который создаёт случайный 4-значный код с помощью
Идеально подойдёт для логина, регистрации или проверки пользователя
👉 Java Portal
Вот сниппет, который создаёт случайный 4-значный код с помощью
Random
и String.format()
Идеально подойдёт для логина, регистрации или проверки пользователя
Please open Telegram to view this post
VIEW IN TELEGRAM
Мягкое завершение работы Spring Boot приложения
1. Прекратить приём новых запросов
—> Приложение прекращает принимать новые входящие запросы.
2. Дать текущим запросам завершиться
—> Текущим запросам разрешается завершиться
3. Завершить внутренние задачи
—> Внутренние задачи, такие как запланированные задания, завершаются.
4. Оповестить другие сервисы
—> Приложение уведомляет другие сервисы о подготовке к завершению работы.
👉 Java Portal
1. Прекратить приём новых запросов
—> Приложение прекращает принимать новые входящие запросы.
2. Дать текущим запросам завершиться
—> Текущим запросам разрешается завершиться
3. Завершить внутренние задачи
—> Внутренние задачи, такие как запланированные задания, завершаются.
4. Оповестить другие сервисы
—> Приложение уведомляет другие сервисы о подготовке к завершению работы.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрее находите и устраняйте ошибки в коде с IntelliJIDEA 👩💻
Используйте
Куда бы ни был установлен курсор, IDE сразу перенесёт вас к проблеме с полезными объяснениями и предложениями по быстрому исправлению
👉 Java Portal
Используйте
⇧F2
(macOS) / Shift + F2
(Windows, Linux), чтобы переходить между проблемами.Куда бы ни был установлен курсор, IDE сразу перенесёт вас к проблеме с полезными объяснениями и предложениями по быстрому исправлению
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring_Annotations_Final.pdf
37.5 KB
25 аннотаций Spring Boot, которые вы должны знать
Сохраняй, чтобы не искать по тысячу раз❤️
👉 Java Portal
Сохраняй, чтобы не искать по тысячу раз
Please open Telegram to view this post
VIEW IN TELEGRAM
Java_Hibernate_Interview_Questions_Linked.pdf
24.2 KB
Вопросы для собеседования по Java Hibernate с однострочными ответами
Ставь лайк если полезно👍
👉 Java Portal
Ставь лайк если полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
Скидываю вам список чекеров и плагинов для Error Prone — забрать
Error Prone — это инструмент от Google для анализа Java-кода, который встраивается в компилятор (javac) и находит потенциальные ошибки ещё на этапе компиляции⌨️
Подойдет для тех, кто хочет усилить Error Prone и сделать код чище, безопаснее и стабильнее
👉 Java Portal
Error Prone — это инструмент от Google для анализа Java-кода, который встраивается в компилятор (javac) и находит потенциальные ошибки ещё на этапе компиляции
Подойдет для тех, кто хочет усилить Error Prone и сделать код чище, безопаснее и стабильнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучшие советы по API REST
Скачать PDF на русском — здесь
Сохрани себе для быстрой шпаргалки
🥁 🥁 🥁
👉 Java Portal
Скачать PDF на русском — здесь
Сохрани себе для быстрой шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
Осталось всего 2 дня, чтобы прокачать асинхронный код на Scala Future 📢
15 апреля в 18:30 пройдёт открытый вебинар с Валентином Шилиным — старшим программистом и аналитиком данных Deutsche Telekom IT GmbH, экспертом по большим данным и преподавателем курсов по Scala и Apache Spark. Он расскажет:
— как избегать типичных ошибок (блокировки и потерю контекста)
— как комбинировать асинхронные операции (Future.sequence, traverse, for-comprehensions)
— как ускорить и упростить написание кода на Scala
❗️ Если вы хотите перейти с Java на Scala или уже используете Play Framework, Akka или Spark — на вебинаре вы узнаете, как грамотно писать асинхронный код и устранять «подводные камни».
Каждый участник:
— сможет задать вопросы эксперту
— получит скидку на полный курс по Scala-разработке
👉 Не упустите шанс перейти на новый уровень — регистрируйтесь, пока осталось 2 дня
https://otus.pw/h1lG/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
15 апреля в 18:30 пройдёт открытый вебинар с Валентином Шилиным — старшим программистом и аналитиком данных Deutsche Telekom IT GmbH, экспертом по большим данным и преподавателем курсов по Scala и Apache Spark. Он расскажет:
— как избегать типичных ошибок (блокировки и потерю контекста)
— как комбинировать асинхронные операции (Future.sequence, traverse, for-comprehensions)
— как ускорить и упростить написание кода на Scala
❗️ Если вы хотите перейти с Java на Scala или уже используете Play Framework, Akka или Spark — на вебинаре вы узнаете, как грамотно писать асинхронный код и устранять «подводные камни».
Каждый участник:
— сможет задать вопросы эксперту
— получит скидку на полный курс по Scala-разработке
👉 Не упустите шанс перейти на новый уровень — регистрируйтесь, пока осталось 2 дня
https://otus.pw/h1lG/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Клёвый тренажёр+учебник по SQL
Тут можно потренироваться в хитрых джойнах, агрегациях и понабивать руку. Интерфейс очень приятный и позволяет потыкать схему БД, даёт подсказки как в коде, так и непосредственно по решению
В более сложные штуки (к примеру, в оконные функции) этот ресурс не лезет. Ну и запросы даже в самых сложных задачках получаются не сказать чтобы громоздкие
На сайте есть платная версия (которая позволяет смотреть авторские решения), но можно вполне обойтись и без неё
https://sql-academy.org/ru/trainer
👉 Java Portal
Тут можно потренироваться в хитрых джойнах, агрегациях и понабивать руку. Интерфейс очень приятный и позволяет потыкать схему БД, даёт подсказки как в коде, так и непосредственно по решению
В более сложные штуки (к примеру, в оконные функции) этот ресурс не лезет. Ну и запросы даже в самых сложных задачках получаются не сказать чтобы громоздкие
На сайте есть платная версия (которая позволяет смотреть авторские решения), но можно вполне обойтись и без неё
https://sql-academy.org/ru/trainer
Please open Telegram to view this post
VIEW IN TELEGRAM
Общие вопросы для собеседования по HashMap в Java 💪
Может ли HashMap содержать null-ключи и null-значения?
—> Да, один null-ключ допускается.
—> Несколько null-значений разрешены.
Потокобезопасен ли HashMap?
—>Нет, не потокобезопасен
Безопасные альтернативы:
⏩
⏩
Могут ли два разных объекта иметь одинаковый хеш-код?
—> Да. Это называется хеш-коллизия
Что вызывает
—> Изменение HashMap во время итерации (например, через
Может ли HashMap содержать два ключа с одинаковым хеш-кодом?
—> Да. HashMap обрабатывает коллизии с помощью цепочек (chaining)
Что происходит при вставке дублирующегося ключа?
—> Новое значение перезаписывает старое для этого ключа
👉 Java Portal
Может ли HashMap содержать null-ключи и null-значения?
—> Да, один null-ключ допускается.
—> Несколько null-значений разрешены.
Потокобезопасен ли HashMap?
—>Нет, не потокобезопасен
Безопасные альтернативы:
Collections.synchronizedMap()
(медленнее, блокирует всю карту)ConcurrentHashMap
(предпочтительнее при многопоточности)Могут ли два разных объекта иметь одинаковый хеш-код?
—> Да. Это называется хеш-коллизия
Что вызывает
ConcurrentModificationException
?—> Изменение HashMap во время итерации (например, через
for-each
) без использования Iterator.remove()
Может ли HashMap содержать два ключа с одинаковым хеш-кодом?
—> Да. HashMap обрабатывает коллизии с помощью цепочек (chaining)
Что происходит при вставке дублирующегося ключа?
—> Новое значение перезаписывает старое для этого ключа
Please open Telegram to view this post
VIEW IN TELEGRAM
JWT vs Сессии — что выбрать для авторизации?
Кратко и наглядно разобрали плюсы и минусы двух популярных подходов
Сохрани себе, пригодится⚔️
👉 Java Portal
Кратко и наглядно разобрали плюсы и минусы двух популярных подходов
Сохрани себе, пригодится
Please open Telegram to view this post
VIEW IN TELEGRAM
Генератор надёжных паролей на Java
Пароль с заглавными, строчными, цифрами и спецсимволами? Легко.
С помощью библиотеки
Просто, удобно и безопасно.😊
👉 Java Portal
Пароль с заглавными, строчными, цифрами и спецсимволами? Легко.
С помощью библиотеки
Passay
можно сгенерировать крепкий 10-символьный пароль буквально в пару строк.Просто, удобно и безопасно.
Please open Telegram to view this post
VIEW IN TELEGRAM