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

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

Kanalga Telegram’da o‘tish

Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot

Ko'proq ko'rsatish
6 465
Obunachilar
+124 soatlar
-47 kunlar
-1430 kunlar
Postlar arxiv
Вакансии «Библиотеки программиста» — ждем вас в команде! Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем: 👉контент-менеджеров для ведения телеграм-каналов Подробности тут Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴 Ждем ваших откликов 👾

👀 Задачи с собеседований: Поиск подмассива с максимальной суммой (middle) — Дан массив целых чисел, необходимо найти подмасс
👀 Задачи с собеседований: Поиск подмассива с максимальной суммой (middle) — Дан массив целых чисел, необходимо найти подмассив с наибольшей суммой и вернуть эту сумму. 💡 Ключевые моменты: - Подмассив — это непрерывная последовательность элементов исходного массива. - Требуется определить такую последовательность, сумма элементов которой максимальна. - Эффективное решение задачи достигается с помощью алгоритма Кадане, который позволяет найти максимальную сумму подмассива за линейное время O(n). Реализация на картинке 👆🏻

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хо
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

Что такое ApplicationContext в Spring? ApplicationContext — это центральный интерфейс контейнера Spring, который загружает метаданные конфигурации из XML-файлов, Java-классов или аннотаций, создаёт бины и управляет ими на протяжении всего жизненного цикла приложения, а также предоставляет расширенные функции для разработки приложений. Он является расширением BeanFactory и добавляет дополнительные возможности, такие как поддержка аннотаций, автоматическое связывание зависимостей, интернационализацию и публикацию событий.

Что такое Prototype Scope в Spring? Prototype Scope — это один из типов областей видимости (scope) бинов в Spring. Если бин настроен как @Scope("prototype"), то каждый раз, когда вы запрашиваете этот бин у контейнера Spring, создается новый экземпляр объекта. Зачем нужен? ▪️ Полезен, если у бина есть изменяемое состояние, которое не должно разделяться между потоками или пользователями. ▪️ Каждый запрос получает "чистый" объект, что упрощает работу с данными, привязанными к конкретному потоку, запросу или контексту.

Каких вопросов вы бы хотели видеть больше в ближайший месяц?
Anonymous voting

Что такое BeanPostProcessor? BeanPostProcessorинтерфейс Spring, позволяющий вмешиваться в процесс инициализации бинов. Он предоставляет два метода: ▪️ postProcessBeforeInitializationвызывается до инициализации бина. ▪️ postProcessAfterInitializationвызывается после инициализации бина. Применяется для кастомизации бинов: логирование, валидация, проксирование (AOP, транзакции) и т.д. Как работает? 1️⃣ Spring ищет все реализации BeanPostProcessor. 2️⃣ Методы применяются ко всем бинам в контексте.

В чем разница между StackOverflowError и OutOfMemoryError? 🔹 StackOverflowError возникает при переполнении стека вызовов. Это связано с глубокой рекурсией или избыточной вложенностью методов. Стек — это ограниченный объем памяти, выделенный для хранения локальных переменных и контекста выполнения. 🔹 OutOfMemoryError возникает, если JVM исчерпывает память в куче или других областях (например, Metaspace). Это может происходить из-за утечек памяти, создания огромных объектов или нехватки ресурсов.

🎨 Новый канал для вдохновения — UX in GIF Мы запустили свежий канал, где делимся идеями для дизайна интерфейсов. Всё самое с
🎨 Новый канал для вдохновения — UX in GIF Мы запустили свежий канал, где делимся идеями для дизайна интерфейсов. Всё самое стильное, оригинальное и вдохновляющее теперь в одном месте. 📌 Чем полезен канал? → Идеи для дизайна интерфейсов. → Анимации, которые можно повторить или адаптировать. → Лёгкий способ искать вдохновение перед новым проектом. 👉 Подписывайтесь и вдохновляйтесь: UX in GIF

Самые полезные каналы для программистов в одной подборке! Сохраняйте себе, чтобы не потерять 💾 🔥Для всех Библиотека программиста — новости, статьи, досуг, фундаментальные темы Книги для программистов 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 запрещена на территории РФ

💾 CDC vs Outbox: как решить проблему двойной записи в распределенной системе В распределённых системах согласованность данны
💾 CDC vs Outbox: как решить проблему двойной записи в распределенной системе В распределённых системах согласованность данных часто становится настоящим вызовом. Особенно это касается сценариев, где требуется выполнить несколько операций в разных системах одновременно. Как избежать проблем двойной записи? Современные подходы, такие как захват изменений данных (CDC) и паттерн Outbox, предлагают интересные решения. Эти методики позволяют поддерживать целостность данных, избегать сбоев и минимизировать риски. Хотите узнать, как внедрить такие подходы и выбрать оптимальный для своей системы? Загляните в захватывающее руководство, чтобы разобраться в тонкостях. 🔗 Читать статью 🔗 Зеркало

Что такое Lazy Initialization? Lazy Initialization (ленивая инициализация) — это подход, при котором объект, ресурс или данные создаются и инициализируются только при первом использовании. Это позволяет сократить затраты на память и процессорное время, особенно если ресурс может никогда не понадобиться в ходе выполнения программы. Зачем это нужно? ▪️ Оптимизация производительности. Тяжёлые операции, такие как загрузка данных из базы или инициализация сложных объектов, выполняются только при необходимости. ▪️ Экономия ресурсов. Позволяет избежать выделения памяти или загрузки данных до их реального использования.

Подготовься к собеседованию на позицию Data Scientist! Профессия Data Scientist становится все более востребованной, и компан
Подготовься к собеседованию на позицию Data Scientist! Профессия Data Scientist становится все более востребованной, и компании ищут специалистов, способных превращать данные в ценные инсайты. Но как успешно пройти техническое собеседование? Мы собрали 10 типичных задач, которые могут встретиться на собеседовании, и эффективные подходы к их решению: 1. Внешнее и тензорное произведение 2. One-hot кодировка 3. Мониторинг осадков 4. Симуляция бросков кубиков в «Монополии» 5. Бурение скважин для добычи золота 6. Вычисление свертки 7. Бэктестинг торговой стратегии 8. Прогноз оттока клиентов с помощью логистической регрессии 9. Обнаружение спама с использованием дерева решений 10. Предсказание цен на квартиры с помощью линейной регрессии Чтобы начать решать задачи, достаточно ответить на четыре простых вопроса по этой ссылке и получить доступ к вводным занятиям курса Математика для Data Science и 10 задачам.

ℹ️ Что такое динамическое связывание? Динамическое связывание — это процесс, при котором вызов метода определяется во время выполнения программы, а не на этапе компиляции. Это возможно благодаря механизму полиморфизма. Например, если метод переопределён в классе-наследнике, JVM решает, какую версию метода вызывать (из родительского или дочернего класса), только во время выполнения. Или когда объект создаётся на основе интерфейса, вызов метода также определяется динамически. 📌 Пример:
class Animal {
    void sound() { System.out.println("Animal sound"); }
}

class Dog extends Animal {
    @Override
    void sound() { System.out.println("Bark"); }
}

Animal animal = new Dog();
animal.sound(); // Вывод: Bark
В этом коде тип переменной animal определён на этапе компиляции (Animal), но метод sound() вызывается из Dog, потому что объект определяется динамически во время выполнения.

Что такое маркерный интерфейс? Маркерный интерфейс — это интерфейс без методов и полей, служащий для передачи дополнительной метаинформации классу. Примеры в Java — Serializable и Cloneable. Они сигнализируют JVM или библиотекам о том, как работать с объектами этих классов. Например, Serializable указывает, что объект может быть сериализован.

ℹ️ Что такое method hiding? Method hiding — это механизм, при котором статический метод суперкласса "скрывается" статическим методом с той же сигнатурой в подклассе. Это не переопределение, а скрытие. 🔹 Как это работает: - Тип метода определяется на этапе компиляции, основываясь на типе ссылки. - Если ссылка относится к суперклассу, вызывается метод суперкласса. Если к подклассу — метод подкласса. 🔹 Пример:
class Parent {
    static void show() {
        System.out.println("Parent static method");
    }
}

class Child extends Parent {
    static void show() {
        System.out.println("Child static method");
    }
}

Parent parent = new Child();
parent.show(); // Выведет "Parent static method"
⚠️ Это не работает для нестатических методов — там всегда используется переопределение, а метод определяется во время выполнения (runtime).

Какие архитектурные паттерны проектирования есть и кратко опишите? Layered Pattern — деление системы на слои: представление, бизнес-логика, доступ к данным. Клиент-Сервер — разделение системы на клиентов, которые запрашивают услуги, и серверов, которые их предоставляют. Микросервисы — деление системы на независимые сервисы, которые можно разворачивать отдельно. Event-Driven Architecture (Событийно-ориентированная архитектура) — система реагирует на события и запускает процессы. MVC, MVP, MVVM — разделение данных, пользовательского интерфейса и логики обработки. SOA (Сервис-Ориентированная Архитектура) — приложения строятся из повторно используемых сервисов. P2P — каждый узел системы является и клиентом, и сервером. Брокер — использование посредника для управления коммуникациями между компонентами. Гексагональная архитектура — изоляция основной логики от внешних систем через адаптеры. CQRS — разделение операций на чтение и запись для оптимизации. Pipe-and-Filter — обработка данных через серию шагов, соединённых трубами. Cloud-Native — архитектура, оптимизированная для облака с микросервисами и контейнерами.

Какие преимущества и подводные камни могут возникнуть при использовании @Data из Lombok? 🔹 Преимущества: - Автоматически генерирует getter/setter, toString, equals, hashCode и constructor. - Меньше шаблонного кода, больше концентрации на бизнес-логике. 🔹 Подводные камни: - Потенциальная рекурсия в toString для связанных объектов. - Автоматическая генерация всех методов может включить ненужные поля, что негативно скажется на производительности или логике. - Небезопасно для JPA-сущностей: можно включить ленивые поля в equals или hashCode. Рекомендация: Используйте @Data для DTO или простых классов, а для сущностей JPA применяйте аннотации @Getter, @Setter и выборочные настройки вручную.

Можно ли все методы в классе пометить как synchronized? ❌ Неверно: Да, пометить весь класс как synchronized ✔️ Правильный ответ: Да, однако весь класс пометить как synchronized нельзя. Ключевое слово synchronized применяется только к методам или блокам кода внутри класса. Если необходимо синхронизировать доступ ко всем методам класса, это придется сделать вручную, добавляя synchronized к каждому методу.

👀 Задачи с собеседований: Числа от 0 до 1000, которые делятся на 3, но не на 5, и сумма цифр которых меньше десяти (jun+) —
👀 Задачи с собеседований: Числа от 0 до 1000, которые делятся на 3, но не на 5, и сумма цифр которых меньше десяти (jun+) — Как найти все числа от 0 до 1000, которые одновременно: Делятся на 3. Не делятся на 5. Сумма цифр числа меньше десяти. 💡 Ключевые моменты: - Чтобы число делилось на X, его нужно проверить на остаток от деления: number % Х == 0. - Для проверки суммы цифр числа можно пройтись по всем его цифрам и сложить их, затем проверить, что сумма меньше 10. - Как улучшить решение? Реализация на картинке 👆🏻