es
Feedback
Библиотека собеса по Java | вопросы с собеседований

Библиотека собеса по Java | вопросы с собеседований

Ir al canal en Telegram

Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/08c603b6 Для обратной связи: @proglibrary_feeedback_bot

Mostrar más
6 490
Suscriptores
+124 horas
+137 días
+1530 días
Archivo de publicaciones
Что такое Java Memory Model (JMM)? Java Memory Model (JMM) — это набор правил и спецификаций, описывающих, как потоки в Java взаимодействуют друг с другом через общую память. JMM определяет, когда изменения, сделанные одним потоком, становятся видимыми другим потокам, и как обеспечить предсказуемость поведения многопоточных программ. 🐸 Библиотека собеса по Java

Что такое лямбда? Лямбда — это краткая форма записи анонимного класса с одним методом. Позволяет писать компактный и читаемый код, особенно при работе с коллекциями и потоками. Лямбда выражения появились в Java 8 и работают только с функциональными интерфейсами (интерфейсы с одним абстрактным методом). 🐸 Библиотека собеса по Java

💬 Обратная связь Ваше мнение по контенту: 🔥 — Всё супер 👍🏼 — Нормально 😁 — Есть предложения по улучшению (в комменты) 🐸 Библиотека собеса по Java

Можно ли переопределить статический метод? Статические методы нельзя переопределить, они подвергаются скрытию (hiding). Если в подклассе объявлен статический метод с той же сигнатурой, что и в суперклассе, то метод из суперкласса не переопределяется, а скрывается. Вызов скрытого метода зависит от типа ссылки, а не от типа реального объекта (полиморфизм не работает со статическими методами). Это может привести к неожиданному поведению, так как разработчик может ошибочно рассчитывать на переопределение метода, а на самом деле будет вызван метод из класса ссылки, а не объекта. ⚠️ В целом, скрытие статических методов считается плохой практикой из-за того, что это усложняет понимание кода и может вызвать путаницу. 🐸 Библиотека собеса по Java

В чём разница между методами submit() и execute() в ExecutorService? И submit(), и execute() используются для запуска задач в пуле потоков, но между ними есть важные отличия: — execute(Runnable) запускает переданную задачу асинхронно, но не возвращает никакого результата. Если во время выполнения возникнет исключение, оно не передаётся явно обратно. — submit(Runnable/Callable) также запускает задачу асинхронно, но возвращает объект типа Future. С помощью этого объекта можно получить результат задачи (future.get()), проверить статус её выполнения (future.isDone()), явно обработать исключение, если оно произошло во время выполнения задачи. 🐸 Библиотека собеса по Java

В чём разница между методами submit() и execute() в ExecutorService? И submit(), и execute() используются для запуска задач в пуле потоков, но между ними есть важные отличия: — execute(Runnable) запускает переданную задачу асинхронно, но не возвращает никакого результата. Если во время выполнения возникнет исключение, оно не передаётся явно обратно. — submit(Runnable/Callable) также запускает задачу асинхронно, но возвращает объект типа Future. С помощью этого объекта можно получить результат задачи (future.get()), проверить статус её выполнения (future.isDone()), явно обработать исключение, если оно произошло во время выполнения задачи.

Как работает @Transactional и какие подводные камни? @Transactional говорит Spring обернуть метод в транзакцию. Если всё прошло — делается commit, иначе rollback. 🔹 Особенности: — Работает только при вызове метода извне, т.к. Spring создаёт прокси. — Не откатывает по checked exceptions по умолчанию. — Не работает на private и final методах. 🐸 Библиотека собеса по Java

Чем отличается @RequestParam от @PathVariable? ▪️ @RequestParamизвлекает значение из query-параметров URL, например: /users?id=5 ▪️ @PathVariableизвлекает из части пути, например: /users/5 🐸 Библиотека собеса по Java

В чём разница между @Component, @Service и @Repository в Spring? Все три аннотации делают класс Spring-бином, но различаются по семантике: — @Component: базовая аннотация, универсальный бин без конкретной роли.@Service: указывает, что класс содержит бизнес-логику. Используется для читаемости и логической группировки.@Repository: помечает DAO-слой (доступ к данным). Плюс Spring автоматически оборачивает методы в блок try-catch для DataAccessException. ⚠️ Разница не в функциональности, а в намерении разработчика. Spring их обрабатывает по-разному только для @Repository (например, при работе с базой данных). 🐸 Библиотека собеса по Java

В чём разница между IO и NIO? 🔹 IO (Input/Output)Потоково-ориентированный подход (stream-oriented).Блокирующий ввод-вывод (thread блокируется, пока операция не завершится).Не поддерживает неблокирующие операции.Нет встроенных средств буферизации, требует ручной реализации.Подходит для простых задач, небольших файлов и данных. 🔹 NIO (New Input/Output)Буферно-ориентированный подход (buffer-oriented).Поддерживает неблокирующий ввод-вывод (non-blocking).Позволяет работать с каналами (channels), буферами (buffers), селекторами (selectors).Эффективен при работе с большим количеством одновременных подключений и крупными данными.Производительность выше за счёт асинхронности и сокращения потоков. 🐸 Библиотека собеса по Java

Что такое JIT-компилятор? JIT (Just-In-Time) компилятор — это компонент JVM, который компилирует байт-код в машинный код непосредственно во время выполнения программы, а не до старта приложения. Его задача — улучшить производительность, оптимизируя код, исходя из реальных условий работы программы. JIT компилирует только те части кода, которые реально исполняются, и может применять различные оптимизации для ускорения работы приложения. Это позволяет сочетать гибкость интерпретируемого байт-кода и производительность нативного кода. 🐸 Библиотека собеса по Java

💬 Обратная связь Ежемесячный опрос по грейдам. Проверим, стало ли среди нас больше милордов синьоров. Ваш грейд: 🔥 — Senior 👍🏼 — Middle ❤️ — Junior 😁 — Ещё учусь 🐸 Библиотека собеса по Java

Что такое сервлеты? Сервлеты — это Java-классы, которые обрабатывают HTTP-запросы и формируют HTTP-ответы на стороне сервера. Они работают внутри сервлет-контейнера (например, Tomcat), расширяя функциональность веб-сервера. Обычно используются для создания динамического контента, например, генерации HTML на лету или обработки форм. Сервлет реализует интерфейс javax.servlet.Servlet (чаще через HttpServlet) и переопределяет методы вроде doGet(), doPost(). Их жизненный цикл включает три ключевых этапа: инициализация (init() ), обработка запроса (service()/doX() ), уничтожение (destroy() ). 🐸 Библиотека собеса по Java

Что такое Spring Core? Spring Core — это основа всего фреймворка Spring. Он предоставляет механизм Inversion of Control (IoC) и Dependency Injection (DI), позволяя создавать гибкие, легко тестируемые и слабо связанные компоненты. Вместо того чтобы объект сам создавал свои зависимости (например, через new), Spring сам внедряет нужные зависимости во время выполнения. 🔹 КомпонентыApplicationContext: основной контейнер Spring, где хранятся все бины. — BeanFactory: облегчённый контейнер, из которого вырос ApplicationContext. — Конфигурация бинов: XML, Java-класс (@Configuration), аннотации (@Component, @Autowired). 🐸 Библиотека собеса по Java

Зимний режим OFF. Весна начинается с апгрейда. Если чувствуешь, что за зиму навыки подзастыли — пора их разморозить. 📦 Включ
Зимний режим OFF. Весна начинается с апгрейда. Если чувствуешь, что за зиму навыки подзастыли — пора их разморозить. 📦 Включили весеннюю распродажу: скидка –35% на курсы до конца марта. Выбирай направление и выходи из спячки: — Алгоритмы и структуры данных — чтобы собеседования в Яндекс, Ozon и другие были как уровень easy — Математика для Data Science — для тех, кто не хочет просто «жать на кнопки», а понимать, что под капотом — Архитектуры и шаблоны — если хочется мыслить как senior и прокачать системное мышление — Python, Frontend, основы IT — для тех, кто стартует путь в разработке 👾 Proglib Academy — это как старая добрая 8-битная игра, но вместо врагов — практические задачи и собеседования. Мы просто упаковали сложное обучение в пиксельную обёртку, чтобы тебе было чуть веселее прокачиваться. 🧠 Отогревай мозги, прокачивай скиллы и хватай свой power-up до конца марта. 👉 Выбрать курс

Что такое принципы SOLID? SOLID — это аббревиатура из пяти принципов объектно-ориентированного дизайна, предложенных Робертом Мартином, которые помогают делать код гибким, расширяемым и легко поддерживаемым. S — Single Responsibility Principle Класс должен иметь только одну причину для изменения, то есть одну зону ответственности. O — Open/Closed Principle Классы должны быть открыты для расширения, но закрыты для изменения. Расширяйте поведение через наследование или композицию, не изменяя уже написанный код. L — Liskov Substitution Principle Подтипы должны заменять базовый тип без нарушения логики. Везде, где ожидается базовый класс, должен корректно работать и его наследник. I — Interface Segregation Principle Много специализированных интерфейсов лучше одного общего. Клиенты не должны зависеть от интерфейсов, которые они не используют. D — Dependency Inversion Principle Зависимости должны быть от абстракций, а не от конкретных реализаций. Модули верхнего уровня не должны зависеть от модулей нижнего уровня — оба должны зависеть от абстракций. 🐸 Библиотека собеса по Java

🔍Тестовое собеседование на Middle Java-разработчика завтра 26 марта(уже завтра!) в 19:00 по мск приходи онлайн на открытое с
🔍Тестовое собеседование на Middle Java-разработчика завтра 26 марта(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Илья Аров, старший разработчик в Т1, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Илье Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwRjebJ

В чём разница между Heap и Stack? Stack — это область памяти, где хранятся примитивные типы данных и ссылки на объекты, а также контекст выполнения методов (фреймы). Он работает по принципу LIFO (последний зашёл — первый вышел), быстро выделяет и освобождает память, но объём ограничен. Живёт до конца выполнения потока. Heap — это область памяти, где хранятся все объекты. Примитивные поля объектов тоже попадают в Heap, но только как часть самого объекта. Управляется сборщиком мусора (GC), доступ к данным медленнее, чем в Stack, но размер больше. Объекты в heap живут, пока на них есть ссылки. 🐸 Библиотека собеса по Java

Что такое AOP? AOP (Aspect-Oriented Programming) — это парадигма программирования, позволяющая вынести повторяющийся функционал (например, логирование, безопасность, транзакции) в отдельные модули, называемые аспектами, и "вшить" их в бизнес-логику без изменения её кода. AOP позволяет разделить технический и бизнес-код, избавляя от дублирования и улучшая читаемость. 🔹 Ключевые термины: — Join Point: точка в выполнении программы (например, вызов метода). — Advice: код, который выполняется на Join Point (например, до/после метода). — Pointcut: выражение, определяющее, где именно применять Advice. — Aspect: класс, содержащий Advice и Pointcut. — Weaving: процесс внедрения аспектов в код. 🐸 Библиотека собеса по Java

💬 Как оставлять комментарии в чате нашего канала В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи. ⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии. ❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас. ✅ Как присоединиться к чату, чтобы бот вас не забанил — Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат — Нажмите Join / Присоединиться — Сразу обратите внимание на сообщение от бота Shieldy — Решите простой пример и отправьте ответ в чат После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат. ❗️ Если вас все-таки забанили — Это временная блокировка на несколько минут — Подождите и попробуйте зайти позже, бот снова отправит вам капчу Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение. 👾 Спасибо, что активно участвуете в обсуждении наших постов!