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

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

Ir al canal en Telegram

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

Mostrar más
6 488
Suscriptores
+124 horas
+137 días
+1530 días
Archivo de publicaciones
💬 Обратная связь Какие вопросы публиковать больше? 👍🏼 — Классика с собесов, чтобы точно набить руку на ближайший 🤔 — Вопросы, которые не встречаются в каждой статье вида "N вопросов для собеса" 🔥 — Больше практики, а то одна теория

Что такое Diamond Problem? Diamond Problem — это ситуация в ООП, когда класс наследуется от двух (или более) классов, которые имеют общий предок. Это приводит к неясности, какой из методов или свойств из общего предка должен быть использован в дочернем классе. Например, класс D реализует интерфейсы B и C, которые оба наследуют от A. В случае наличия однотипных методов в B и C, возникает неясность, какой метод использовать. Java не поддерживает множественное наследование классов, поэтому Diamond Problem возникает только в контексте интерфейсов. И решается путём явного переопределения реализации в дочернем классе. 🐸 Библиотека собеса по Java

В чём разница между IO и NIO в Java? IO (Input/Output) — это традиционное блокирующее взаимодействие с вводом и выводом, где каждый запрос на чтение или запись блокирует поток до завершения операции. В IO используется модель потоков (Streams), и операции выполняются синхронно, что может привести к снижению производительности при работе с большим количеством соединений. В свою очередь, NIO (New IO), введённый в Java 1.4, использует неблокирующий подход. Вместо потоков здесь используются каналы (Channels) и буферы (Buffers), а операции могут выполняться асинхронно. Это позволяет работать с несколькими каналами одновременно и эффективно использовать ресурсы при высоких нагрузках, так как операции не блокируют потоки. Также NIO поддерживает такие механизмы, как селекторы, которые позволяют обрабатывать несколько соединений с минимальными затратами времени. 🐸 Библиотека собеса по Java

Какие методы есть в Stream API? В Stream API есть несколько основных категорий методов: 1. Создание потока:stream() создаёт поток из коллекции. — of() создаёт поток из переданных элементов. — iterate() создаёт поток с элементами, вычисляемыми по определенному правилу. — generate() создаёт поток с элементами, генерируемыми функцией. 2. Промежуточные операции (возвращают новый поток):map() преобразует элементы потока. — filter() фильтрует элементы потока. — distinct() удаляет дубликаты. — sorted() сортирует элементы. — peek() позволяет наблюдать за элементами в потоке. 3. Терминальные операции (возвращают результат, завершают поток):collect() собирает элементы в коллекцию. — reduce() сводит элементы потока к одному значению. — forEach() выполняет действие для каждого элемента. — count() возвращает количество элементов. — anyMatch(), allMatch(), noneMatch() проверка условия для элементов. 4. Операции для работы с примитивными типами (IntStream, LongStream, DoubleStream):mapToInt(), mapToLong(), mapToDouble() — преобразуют элементы в соответствующие типы. — sum(), average(), min(), max() — для статистики. 🐸 Библиотека собеса по Java

Что такое «абсолютный путь» и «относительный путь»? ▪️ Абсолютный путь — это путь к файлу или каталогу от корневой директории файловой системы или диска. Он всегда однозначен и не зависит от текущего рабочего каталога программы. ▪️ Относительный путь — это путь к файлу или каталогу относительно текущего рабочего каталога. Он короче, но зависит от того, в какой директории запускается приложение. 🐸 Библиотека собеса по Java

Что такое race condition? Race condition (состояние гонки) — это ситуация, когда два или более потока или процесса одновременно пытаются получить доступ и изменить общий ресурс, и порядок их выполнения влияет на корректность программы. В результате, если доступ к ресурсу не синхронизирован, может возникнуть неконсистентное состояние, что приводит к ошибкам. Пример: Предположим, два потока одновременно увеличивают значение переменной. Без должной синхронизации результат может быть неверным, так как оба потока могут читать одно и то же значение до его изменения. Как избежать: Использование синхронизации, таких как блокировки (synchronized), атомарные операции или конструкции из библиотеки java.util.concurrent, может помочь избежать состояний гонки. 🐸 Библиотека собеса по Java

Что такое функциональный интерфейс? Функциональный интерфейс — это интерфейс с единственным абстрактным методом. Он нужен для определения целевого типа для лямбда-выражений и ссылок на методы. В Java для обозначения используется аннотация @FunctionalInterface, но она необязательна — это лишь гарантия на этапе компиляции. Примеры: Runnable, Callable, Comparator, Function<T,R>. 🐸 Библиотека собеса по Java

Что такое phantom reads в контексте работы с БД? Ответ: Phantom reads — это явление, при котором транзакция читает данные, которые были добавлены или удалены другими транзакциями после начала выполнения её запроса. В отличие от других аномалий, таких как dirty reads или non-repeatable reads, phantom reads возникают, когда результаты запроса изменяются в процессе его выполнения, например, при добавлении новых строк в таблицу, соответствующих условиям выборки. Для предотвращения phantom reads используется уровень изоляции Serializable. 🐸 Библиотека собеса по Java

Что такое String Pool? String Pool — это специальная область памяти, предназначенная для хранения уникальных строковых литералов. Когда строка создается в программе, JVM сначала проверяет, существует ли уже такая строка в String Pool. Если существует, то возвращается ссылка на неё, иначе создается новый объект в пуле. Это позволяет экономить память, так как одинаковые строки используют один и тот же объект в памяти, а не создаются заново при каждом использовании. 🐸 Библиотека собеса по Java

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

😱 Завтра цена на курс «AI-агенты для DS» вырастет Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты. 🎓 Чему вы научитесь на курсе: — адаптировать LLM под разные предметные области и данные — собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества — строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой Решение за вами. 👉 Купить курс по старой цене

Что такое JSON? JSON (JavaScript Object Notation) — это текстовый формат, используемый для хранения и передачи данных. Он был разработан для использования в JavaScript, но благодаря своей простоте и универсальности стал стандартом во многих других языках программирования. JSON представляет данные в виде пар "ключ-значение", что делает его удобным для хранения структурированной информации. 🐸 Библиотека собеса по Java

Что такое autoboxing? Autoboxing — это автоматическое преобразование примитивных типов в соответствующие им классы-обёртки. Например, преобразование int в Integer, double в Double и так далее. Это упрощает работу с коллекциями, поскольку они могут хранить только объекты, а не примитивы. Autoboxing происходит автоматически, когда примитив передаётся в место, где требуется объект. Примечание: Также существует обратный процесс — unboxing, когда объект обёртки автоматически преобразуется в примитивный тип. 🐸 Библиотека собеса по Java

Что такое Reflection? Reflection — это механизм, позволяющий исследовать и модифицировать поведение классов, методов, полей и конструкторов во время выполнения. Используется через API из пакета java.lang.reflect. Позволяет:Узнавать структуру классов во время выполнения (Class<?>, Method, Field, Constructor);Вызывать методы, читать/записывать поля, даже если они private;Создавать экземпляры классов без new. 🐸 Библиотека собеса по Java

Что такое JDBC? JDBC (Java Database Connectivity) — это API для взаимодействия с реляционными базами данных. Позволяет выполнять SQL-запросы, управлять соединением, извлекать и изменять данные. Ключевые компоненты: 🔹 DriverManager — управляет драйверами и соединениями. 🔹 Connection — устанавливает соединение с БД. 🔹 Statement / PreparedStatement — выполняют SQL-запросы. 🔹 ResultSet — содержит результаты выборки. JDBC — низкоуровневый API, поверх которого строятся ORM-фреймворки вроде Hibernate. 🐸 Библиотека собеса по Java

VK Weekend Offer: отправьте заявку, пройдите интервью и получите офер! 28–29 июня VK проведёт Weekend Offer для бэкендеров с
VK Weekend Offer: отправьте заявку, пройдите интервью и получите офер! 28–29 июня VK проведёт Weekend Offer для бэкендеров с опытом от трёх лет. Участников со знанием Java, Go, Python или C++ ждут технические собеседования, знакомство с продуктами и, если всё сложится, офер уже в конце выходных. Ребята много лет создают облачные решения, системы рекомендаций и поисковые движки — всё с миллионами пользователей в проде — и сейчас ищут новых коллег. Поэтому оставляйте заявку до 25 июня, чтобы попасть в команду за выходные! Подробности — на сайте.

😡 А вас тоже бесят облачные сервисы? Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить прав
😡 А вас тоже бесят облачные сервисы? Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры? Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день. ❓Что мы хотим узнать: — Для чего вы реально используете облако? — Чего катастрофически не хватает прямо сейчас? — Что бесит больше всего? (можно материться) — Как выбираете провайдера — по цене или по любви? — и тому подобное По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег. ⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA

Что такое транзакция? (Не обязательно с привязкой к базе данных) Транзакция — это последовательность действий, которые выполняются как единое целое. В более широком смысле термин «транзакция» используется для описания любой операции или набора операций, которые должны быть выполнены полностью, без прерываний, и если что-то идет не так, изменения отменяются, чтобы система осталась в консистентном состоянии. 🐸 Библиотека собеса по Java

Параметры передаются по ссылке или по значению? В Java параметры всегда передаются по значению. Но важно уточнить, что: ▪️ Для примитивов — передаётся копия значения. ▪️ Для объектов — передаётся копия ссылки на объект, но не сама ссылка. 🐸 Библиотека собеса по Java

❗Вакансии «Библиотеки программиста» Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке
Вакансии «Библиотеки программиста» Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке. 👾 Требования: — знать принципы залетающего контента — разбираться в темах, связанных с разработкой Большим плюсом будет навык программирования на каких-либо языках. ✨ Условия: — удаленка — частичная занятость — сдельная оплата в зависимости от количества задач 🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9