Какие существуют модели авторизации и в чём их отличия?
Ответ:
Ролевая модель (RBAC) основана на ролях. Пользователю назначаются роли, а каждая роль определяет набор разрешённых действий. Модель проста в реализации и широко используется, но плохо подходит для сложных и динамических правил доступа.
Модель на основе разрешений оперирует конкретными правами, а не ролями. Пользователю напрямую назначаются разрешения на действия или ресурсы. Это более гибкий подход, но он сложнее в управлении при большом количестве пользователей и прав.
Атрибутная модель (ABAC) принимает решение о доступе на основе атрибутов пользователя, ресурса и контекста, например времени, местоположения или типа запроса. Это самая гибкая модель, но и самая сложная в реализации и сопровождении.
Итог: RBAC подходит для простых систем, permission-based — для более точного контроля, ABAC — для сложных бизнес-правил и динамических политик доступа.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥2
В статье собраны базовые рекомендации по работе с Hibernate, которые помогут сразу выстроить устойчивую архитектуру и не допустить распространённых ошибок.
Автор разбирает, как задавать id, настраивать связи между сущностями, избегать N+1, использовать ленивую загрузку, кэш второго уровня и корректно работать с equals, hashCode и исключениями.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥1
Где хранятся объекты?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4
Почему метод
clone() объявлен в классе Object, а не в интерфейсе Cloneable?Ответ:
Интерфейс Cloneable при этом — маркерный, без методов. Он служит лишь индикатором того, что объект допускает клонирование. Если объект не реализует Cloneable, а метод clone() всё же вызывается, будет выброшено исключение CloneNotSupportedException. Это позволяет обеспечить контроль над тем, какие классы разрешают копирование, и избежать некорректного поведения при клонировании по умолчанию.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
В статье рассказывается, как использовать Mockito для написания модульных тестов в Java без зависимости от реальных сервисов и баз данных.
Автор объясняет, как создавать моки, задавать их поведение и проверять вызовы — с примерами кода и интеграцией с JUnit.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Почему в Java интерфейс может иметь методы с реализацией (default)? Это не противоречит идее интерфейса?
Ответ:
Без default при добавлении нового метода пришлось бы менять весь существующий код. С default-методом интерфейс даёт базовую реализацию метода, которую необязательно переопределять в реализующих классах.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍4
Что делает метод
clone()?Ответ:
Метод обычно переопределяют, чтобы настроить логику копирования или сделать копию глубже. При этом стандартно вызывают super.clone() и дальше вручную дублируют необходимые поля.
Использование clone() считается не самым удобным способом копирования объектов, поэтому в реальных проектах чаще применяют конструкторы копирования или фабричные методы.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Данная статья рассчитана на тех, кто хочет сделать так, чтобы их Spring Boot приложение могло работать с HTTPS без предупреждений со стороны браузера о небезопасном подключении.
В этой статье разбирается именно работа со Spring Boot и вшитым в него Apache Tomcat.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5👍3
Что такое оптимистичная и пессимистичная блокировки в контексте баз данных?
Ответ:
Пессимистичная блокировка предполагает, что конфликт вероятен. Поэтому данные блокируются сразу при чтении или записи и остаются заблокированными до конца транзакции. Это предотвращает параллельные изменения, но снижает масштабируемость и может приводить к взаимоблокировкам.
Оптимистичная блокировка исходит из того, что конфликты редки. Данные читаются без блокировки, а перед фиксацией изменений выполняется проверка версии: не изменил ли их кто-то ещё. Если изменил — транзакция откатывается и повторяется. Такой подход даёт лучшую производительность при низкой конкуренции.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Что будет, если добавлять элементы в TreeSet по возрастанию?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥6
Почему
String считается безопасным ключом для HashMap?Ответ:
Кроме того, String кэширует результат hashCode(), что делает доступ к элементам быстрее и стабильнее при многократном использовании. Благодаря этим свойствам String — надёжный и предсказуемый ключ для хеш-таблиц.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Как управлять кешированием в HTTP?
Ответ:
Эти механизмы снижают нагрузку на сеть и ускоряют повторные загрузки.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🤣1
This media is not supported in your browser
VIEW IN TELEGRAM
Pinggy позволяет быстро сделать локальный сервер доступным в интернете и просто скинуть ссылку кому угодно.
Ключевые особенности:
▶️ Запускается через одну команду или прямо из браузера▶️ Мгновенно выдаёт публичный URL, которым можно делиться▶️ Не требует регистрации и сложной настройки
Удобно, когда нужно протестировать вебхук/API или быстро дать доступ к демо прямо с localhost — пробуем тут.
tags: #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤1
Что выведет код сверху?
Anonymous Quiz
4%
null
28%
Null
29%
NullPointerException
35%
Ошибка
4%
Ничего
❤2👍1
Если в вашем проекте внезапно Spring ругается на circular dependency, вы не одиноки — такие ошибки возникают даже в продуманных архитектурах.
В статье разобраны причины появления циклических зависимостей, показано, как их отследить с помощью Bean Navigation, и даны рабочие способы решения проблемы.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Что такое
FutureTask?Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
В статье объясняется, как работает JDBC — стандартный способ подключения Java-приложений к базам данных.
Разбираются типы драйверов, методы выполнения запросов и управление транзакциями, что поможет понять, как Java взаимодействует с различными СУБД.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Как устроен Message в Kafka?
Ответ:
Все сообщения в партиции упорядочены и неизменяемы. Kafka хранит их как commit log и позволяет читать данные повторно, начиная с любого смещения.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2👀1
В статье на примере реального кейса из Amazon рассказывается о проблемах, которые могут возникнуть при переносе сервисов между архитектурами x86/64 и ARM из-за различий в моделях памяти.
Автор подробно объясняет, что такое модели памяти и барьеры памяти, делится личным опытом и предлагает визуально понятные материалы для глубокого понимания темы.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Какие типы Statement существуют в JDBC?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7⚡1