Библиотека собеса по Java | вопросы с собеседований
6.34K subscribers
354 photos
4 videos
174 links
Вопросы с собеседований по Java и ответы на них.

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

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

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Что такое MVP?

MVP (Minimum Viable Product) — это минимально жизнеспособный продукт, представляющий собой начальную версию продукта, которая включает только ключевые функции, необходимые для проверки гипотезы или удовлетворения базовых потребностей пользователей.

Ключевые аспекты MVP:

— MVP содержит только те функции, которые являются критически важными для решения основной проблемы пользователя. Остальные функции откладываются на более поздние этапы.

— MVP создаётся для тестирования рыночного спроса или реакции пользователей на продукт с минимальными затратами времени и ресурсов.

— После выпуска MVP собираются отзывы от пользователей, чтобы понять, в правильном ли направлении развивается продукт, и внести изменения.

Важно: MVP — это не просто "сырой" продукт, он должен решать основную задачу, при этом быть полезным и функциональным.
Please open Telegram to view this post
VIEW IN TELEGRAM
ℹ️ Что такое DispatcherServlet?

DispatcherServlet — это центральный компонент Spring MVC, который играет роль "фронт-контроллера" (Front Controller).

🔹 Он выполняет следующие функции:


▪️ Обработка входящих запросов:
Получает HTTP-запросы и перенаправляет их к соответствующим обработчикам (контроллерам).

▪️ Делегирование задач:
- Определяет, какой контроллер должен обработать запрос.
- Обращается к компонентам, таким как HandlerMapping и HandlerAdapter, чтобы найти подходящий обработчик.

▪️ Формирование ответа:
После обработки запроса контроллер возвращает ModelAndView, который DispatcherServlet использует для генерации ответа через ViewResolver.

🔹 Пример процесса:


- Клиент отправляет запрос /home.
- DispatcherServlet ищет соответствующий метод контроллера через HandlerMapping.
- Вызывает найденный метод контроллера, передаёт данные.
- Получает ModelAndView с данными и названием представления.
- Генерирует HTML с помощью ViewResolver и отправляет ответ клиенту.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Spring Boot?

Spring Boot — это фреймворк на базе Spring, который упрощает создание приложений на Java. Он предоставляет:

▪️ Автоконфигурацию — автоматическая настройка компонентов приложения на основе зависимостей и классов в проекте.
▪️ Встроенные серверы — возможность запустить приложение как автономный сервис (например, с помощью встроенного Tomcat или Jetty).
▪️ Starter-пакеты — преднастроенные зависимости для ускорения разработки. Например, spring-boot-starter-web для веб-приложений.
▪️ Поддержку production-ready функций — встроенные метрики, логирование, мониторинг через Spring Actuator.

Spring Boot упрощает старт проекта и уменьшает объем конфигурации, позволяя сосредоточиться на логике приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
В чём разница между @Controller и @RestController в Spring?

🔹 @Controller
Используется для определения классов, которые обрабатывают HTTP-запросы и возвращают представление (например, HTML или JSP). Обычно применяется совместно с ViewResolver для рендеринга страниц.
Методы внутри
@Controller возвращают ViewName (строку), а данные добавляются в модель через объект Model или ModelAndView.

🔹
@RestController
Это сокращение для @Controller + @ResponseBody.
Каждый метод автоматически сериализует возвращаемые данные в JSON или XML и отправляет их в ответе. Используется для создания REST API.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое GraphQL?

GraphQL — это язык запросов и среда выполнения для работы с API, созданная Facebook. Он предоставляет гибкий способ взаимодействия с сервером, позволяя клиенту запрашивать только те данные, которые ему действительно нужны.

🔵 Ключевые особенности GraphQL:

Клиент сам определяет структуру данных в запросе и получает именно то, что запрашивает.
Все запросы обрабатываются через один эндпоинт, что упрощает архитектуру API.
В GraphQL используется строгая типизация данных с помощью схемы, что облегчает разработку и валидацию.
Позволяет избежать избыточной передачи данных по сравнению с REST, что снижает нагрузку на сеть.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Что такое Реактивное программирование?

Реактивное программирование — это подход к разработке программного обеспечения, который фокусируется на асинхронной обработке данных и реактивных потоках. Он позволяет реагировать на изменения данных или событий, обрабатывая их в реальном времени.

Ключевые принципы:

Асинхронность: задачи выполняются без блокировки потоков.
Потоки данных: данные представляются в виде потоков, которые можно преобразовывать, фильтровать или комбинировать.
Обратное давление (Backpressure): механизм управления скоростью данных между источником и получателем, чтобы избежать перегрузки.
Декларативность: разработчик описывает, что должно быть сделано с данными, а не как именно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как зарегистрировать класс как Spring Bean?

1. Через аннотации: @Component, @Service, @Repository и др.
2. Использовать @Bean внутри @Configuration класса.
3. Через XML-конфигурацию.
4. Создание в BeanDefinitionRegistry
5. Через интерфейс FactoryBean
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое исключение?

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

▪️ Иерархия:


— Все исключения наследуются от класса Throwable.
— Основные подклассы:
- Error: критические ошибки, связанные с JVM (например, OutOfMemoryError), обработка обычно невозможна.
- Exception: обрабатываемые ошибки (например, IOException, SQLException).

▪️ Типы исключений:

— Checked (проверяемые):
Должны быть либо обработаны с помощью try-catch, либо объявлены в сигнатуре метода через throws. Пример: IOException.
— Unchecked (непроверяемые):
Наследуются от RuntimeException, могут не обрабатываться явно. Пример: NullPointerException.
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 ТОП-8 фраз, которые испортят впечатление о вас на собеседовании

Представьте, вы попали на собеседование мечты. Всё идёт гладко, но пара неудачных фраз могут свести на нет все ваши старания. Например, если вы слишком скромны или, наоборот, перегибаете с самоуверенностью, это может вызвать недоверие. Или фраза, которая должна показать вашу гибкость, внезапно делает акцент на недостатке опыта. Знакомо?

Есть проверенные подходы, которые помогут избежать таких ситуаций, выстроить грамотное общение и оставить положительное впечатление. Готовы узнать больше? 🌟

🔗 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
Назовите некоторые из шаблонов проектирования, используемых в Spring Framework?

Dependency Injection (DI): основной шаблон, позволяющий управлять зависимостями объектов через контейнер IoC.
— Singleton: контейнер Spring по умолчанию создает бины как singleton.
Factory Method: используется для создания объектов через конфигурационные файлы или аннотации.
— Proxy: применяется в механизмах AOP и транзакционного управления для оборачивания методов в дополнительные функциональности.
Template Method: например, в JdbcTemplate и RestTemplate для инкапсуляции повторяющегося кода.
— Observer: в Event Listener’ах Spring для реализации подписки и обработки событий.

Пишите, какие ещё вы знаете.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Tomcat?

Apache Tomcat — это легковесный сервер приложений (application server), разработанный для запуска Java-приложений, которые используют технологии Java Servlet, JSP и WebSocket.

Основные особенности Tomcat:

Реализация спецификаций сервлетов и JSP, предоставляемых Java EE.
Поддержка HTTP/1.1, WebSocket и других протоколов для веб-приложений.
Используется для разработки и тестирования веб-приложений на Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое нагрузочное тестирование?

Нагрузочное тестирование (Load Testing) — это тип тестирования, цель которого проверить, как приложение или система ведет себя под ожидаемой нагрузкой. Оно помогает выявить узкие места производительности, такие как задержки, сбои или падения производительности при увеличении количества пользователей или запросов.

Ключевые аспекты:

Обнаружение "узких мест" в системе.
Прогнозирование производительности при увеличении масштабов.
Улучшение пользовательского опыта.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Session Scope в Spring?

Session Scope — это область видимости (scope) бина, при которой один экземпляр бина создается и используется в рамках конкретной HTTP-сессии. Для настройки используется аннотация @Scope("session").

Зачем нужен?

▪️ Полезен для хранения данных, которые должны сохраняться на протяжении всей сессии пользователя, например, данные авторизации или корзина покупок.
▪️ Упрощает управление состоянием для каждого пользователя, избегая конфликта данных между различными сессиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Isolation в Spring?

Isolation — это параметр аннотации @Transactional, который определяет, как текущая транзакция взаимодействует с другими при конкурентном доступе к данным.

С помощью этой настройки можно управлять видимостью изменений, сделанных другими транзакциями, и защититься от ошибок, таких как dirty reads, non-repeatable reads и phantom reads.

🔹 Уровни изоляции:


DEFAULT (по умолчанию): используется уровень изоляции, заданный в базе данных.
READ_UNCOMMITTED: транзакция может видеть несохранённые изменения других транзакций (может возникнуть dirty read).
READ_COMMITTED: транзакция видит только сохранённые изменения других транзакций (исключает dirty read).
REPEATABLE_READ: данные, прочитанные транзакцией, остаются неизменными на протяжении всей её работы (исключает dirty read и non-repeatable read).
SERIALIZABLE: самый строгий уровень, который блокирует доступ к данным для других транзакций до завершения текущей (исключает dirty read, non-repeatable read, и phantom read).

🔹 Проблемы конкурентного доступа:

Dirty Read: одна транзакция видит несохранённые изменения другой.
Non-Repeatable Read: данные, прочитанные в одной транзакции, могут измениться другой.
Phantom Read: изменения набора строк, видимого в запросе, из-за вставки или удаления строк другой транзакцией.
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Обратная связь

Основная часть ответа прячется под спойлер. Ваше мнение об этом?

🔥 - Всё супер, интересно самому подумать
👍🏼 - Идея хорошая, но лучше чуть меньше скрывать
😁 - Хочу сразу ответ. Я что, учиться сюда пришел?
Please open Telegram to view this post
VIEW IN TELEGRAM