Библиотека собеса по Java | вопросы с собеседований
6.38K subscribers
360 photos
5 videos
222 links
Вопросы с собеседований по Java и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/08c603b6

Для обратной связи: @proglibrary_feeedback_bot
加入频道
💬 Обратная связь

В текущем формате в ответах на вопросы под спойлер прячется только часть информации — чтобы сохранялся контекст. Насколько это удобно, или лучше скрывать под спойлер весь ответ?

🔥 — Удобно, из контекста можно понять, какие части спрятаны
🌚 — Неудобно, и так всё понятно, лучше прятать всё
😁 — Есть предложения по улучшению (в комменты)

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое ACID?

ACID — это набор принципов, которые обеспечивают надежность и целостность базы данных при обработке транзакций:

▪️ Atomicity (Атомарность) — транзакция выполняется полностью или не выполняется вовсе. Если часть транзакции не может быть выполнена, все изменения откатываются, как если бы транзакция не была запущена.

▪️ Consistency (Согласованность) — транзакция переводит базу данных из одного согласованного состояния в другое. Все правила целостности данных должны соблюдаться.

▪️ Isolation (Изолированность) — изменения, сделанные одной транзакцией, недоступны другим транзакциям до тех пор, пока текущая транзакция не завершится. Это предотвращает конфликты при параллельной работе с базой данных.

▪️ Durability (Долговечность) — после завершения транзакции все изменения фиксируются и сохраняются в базе данных, даже если система выйдет из строя.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость

Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.

👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.

🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе

🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.

📅 Сроки: прием новостей до 11 мая включительно

Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8

Осталась неделя — ждем ваших новостей!
Что значит ключевое слово var в Java?

Ключевое слово var (начиная с Java 10) позволяет компилятору самостоятельно выводить тип переменной на основе инициализатора. Это синтаксический сахар, упрощающий запись, но тип переменной по-прежнему строго статичен.

Использовать var стоит там, где тип очевиден, чтобы не терять читаемость.

⚠️ Ограничения:

— Обязательно нужно инициализировать переменную при объявлении.
— Нельзя использовать var для полей класса, параметров методов или возвращаемых значений методов.
— var не делает тип динамическим, как в скриптовых языках — это лишь сокращение, тип всё ещё строго определён во время компиляции.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое сервлет?

Сервлет — это Java-класс, который обрабатывает HTTP-запросы и формирует HTTP-ответы в веб-приложениях. Он работает на стороне сервера в контейнере сервлетов (например, Tomcat), реализуя интерфейс javax.servlet.Servlet (чаще — через абстрактный класс HttpServlet).

Основная задача сервлета — выступать в роли контроллера в архитектуре MVC: принимать запросы от клиента, обрабатывать данные (либо делегировать бизнес-логике), и передавать результат обратно клиенту (обычно через HTML или JSON).

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
В чём разница между аннотациями @Controller и @RestController в Spring?

@RestController — это сокращение для @Controller + @ResponseBody.
Она используется, когда контроллер возвращает данные (JSON/XML), а не представления (JSP/HTML).

Кратко:

@Controller используется для возврата HTML через шаблонизаторы (например, Thymeleaf).
@RestController — для API, где ответ — это тело (body) с данными, а не страница.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Назовите инструменты для версионирования СУБД.

Среди популярных инструментов для версионирования базы данных чаще всего используются:

▪️ Flyway — простой в настройке инструмент, основанный на SQL- или Java-скриптах, подходит для большинства проектов.

▪️ Liquibase — более гибкий, поддерживает формат XML, YAML, JSON и SQL, имеет возможность откатов, работы с changelog'ами и генерацией диффов.

▪️ Liquibase + Hibernate — можно использовать вместе для генерации changelog'ов из JPA-сущностей.

▪️ Sqitch — мощный, но менее популярный инструмент, ориентирован на работу через VCS и требует ручного управления зависимостями.

💬 Что используете на проекте?

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое «аутентификация» и «авторизация»?

Аутентификация — это процесс проверки личности пользователя (кто он есть). Обычно реализуется через логин и пароль, токены или биометрию. Аутентификация отвечает на вопрос "Кто ты?"

Авторизация — это процесс проверки, имеет ли пользователь доступ к определённым ресурсам или операциям (что он может делать). Авторизация — "Что тебе разрешено?"

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM