ru
Feedback
Java | Вопросы собесов

Java | Вопросы собесов

Открыть в Telegram

📈 Аналитический обзор Telegram-канала Java | Вопросы собесов

Канал Java | Вопросы собесов (@easy_java_ru) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 11 447 подписчиков, занимая 10 899 место в категории Технологии и приложения и 57 490 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 11 447 подписчиков.

Согласно последним данным от 06 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 9, а за последние 24 часа — -3, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 7.92%. В первые 24 часа после публикации контент обычно набирает 7.58% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 907 просмотров. В течение первых суток публикация набирает 868 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 0.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как ставь, void, string, строка, static.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+icUwivvbGOkwNWRi Задачи t.me/+8eqUTboisnkyZjQy Вакансии t.me/+4pspF5nDjgM4MjQy

Благодаря высокой частоте обновлений (последние данные получены 08 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

11 447
Подписчики
-324 часа
-117 дней
+930 день
Архив постов
🤔 Какие способы синхронизации в Java есть? Синхронизация реализуется через synchronized, Lock, ReentrantLock, volatile, Atomic-классы, а также через высокоуровневые конструкции, такие как CountDownLatch, Semaphore, ExecutorService. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какая коллекция реализует дисциплину обслуживания FIFO? FIFO (First-In, First-Out) – это принцип обработки данных: "первым вошёл – первым вышел". 🟠Коллекции, реализующие FIFO Пример работы FIFO с Queue
import java.util.*;

public class FifoExample {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<>(); // Можно заменить на ArrayDeque

        queue.add("Первый");
        queue.add("Второй");
        queue.add("Третий");

        System.out.println(queue.poll()); // Первый
        System.out.println(queue.poll()); // Второй
        System.out.println(queue.poll()); // Третий
    }
}
🟠Разница `poll()`, `remove()` и `peek()`
Queue<Integer> queue = new LinkedList<>();
queue.add(10);
System.out.println(queue.peek());  // 10 (но не удаляет)
System.out.println(queue.poll());  // 10 (удаляет)
System.out.println(queue.poll());  // null (очередь пуста)
Ставь 👍 и забирай 📚 Базу знаний

Вебинар TIKITRIK по оценке эффективности ИТ-активов Бесплатный вебинар 11 сентября в 11:00 (мск). Приглашаем вас на вебинар,
Вебинар TIKITRIK по оценке эффективности ИТ-активов Бесплатный вебинар 11 сентября в 11:00 (мск). Приглашаем вас на вебинар, где мы расскажем об оценке экономической эффективности от внедрения ITAM и вместе посчитаем, сколько вы можете сэкономить уже в первый год. Для ИТ - руководителей и ИТ - специалистов. В программе вебинара обсудим технологии в действии и в деньгах, а также продемонстируем наше решение T I K I T R I K Asset Management в режиме реального времени. Зарегистрироваться #реклама 16+ tikitrik.com О рекламодателе

🤔 Какое худшее время работы метода add() для LinkedList? - В конец — O(1), если не пересоздаётся коллекция; - В середину/начало — O(n), из-за поиска позиции. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В чем разница между new string и string? В Java строки (String) являются неизменяемыми (immutable) объектами и обрабатываются особым образом, особенно при их создании. 🚩`"Hello"` — строка из пула строк Когда вы пишете:
String str1 = "Hello";
🚩`new String("Hello")` — создание нового объекта Когда вы создаёте строку так:
String str2 = new String("Hello");
🚩Разница в сравнении строк
public class StringTest {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "Hello";
        String str3 = new String("Hello");

        System.out.println(str1 == str2); // true (ссылаются на один объект в пуле)
        System.out.println(str1 == str3); // false (разные объекты в памяти)
        System.out.println(str1.equals(str3)); // true (содержимое одинаковое)
    }
}
🚩Когда использовать `new String()`? В 99% случаев new String() не нужен. Его создание расходует память и снижает производительность. Но он может быть полезен, если вы намеренно хотите создать новый объект, например, для защиты от изменения ссылок:
String safeCopy = new String(originalString); // Теперь это точно отдельный объект
Ставь 👍 и забирай 📚 Базу знаний

Онлайн-магистратура с IT специальностями от Яндекса Совместно с ИТМО, МИФИ, МФТИ. Онлайн-магистратура с актуальными программами и гибким графиком обучения. Получите высокооплачиваемую IT профессию, официальный диплом и практические знания. Господдержка оплаты. Совмещение с работой! Подать заявку #реклама 16+ practicum.yandex.ru О рекламодателе

🤔 Чем объект отличается от примитива? - Примитив — это базовый тип (int, boolean и т.д.), он не имеет методов, занимает меньше памяти, работает быстрее. - Объект — экземпляр класса, содержит поля и методы, может быть null, требует больше ресурсов. В Java есть обёртки для примитивов (Integer, Boolean) — это объекты. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Гайд для HRD и HRBP по проведению эффективных вебинаров Как HRD и HRBP ускорить адаптацию и обучение новых сотрудников с помо
Гайд для HRD и HRBP по проведению эффективных вебинаров Как HRD и HRBP ускорить адаптацию и обучение новых сотрудников с помощью вебинаров? Гайд от МТС Линк по подготовке и проведению эффективных вебинаров. ✅ В гайде: - Как лучше использовать вебинары для онбординга и обучения новых сотрудников; - Как упростить рекрутинг и снизить нагрузку на HR-команду; - Как ускорить адаптацию новичков и сократить отток на испытательном сроке; - Как сэкономить время на организации вебинара и пригласить всех участников в 2 клика. Бонус внутри: 5 прикладных советов по контролю внимания участников во время вебинара ✨ Скачайте гайд бесплатно по ссылке Скачать #реклама 16+ mts-link.ru О рекламодателе

🤔 Можно ли одновременно использовать в сервлете PrintWriter и ServletOutputStream? Нет, одновременно использовать PrintWriter и ServletOutputStream в одном сервлете нельзя. Это связано с тем, что эти два класса работают с разными типами данных и открывают ответный поток в разных режимах — PrintWriter для символьных данных, а ServletOutputStream для байтовых данных. 🚩Почему нельзя использовать одновременно: Типы потоков: 🟠`PrintWriter`: Предназначен для записи текстовых данных (символов и строк). 🟠`ServletOutputStream`: Предназначен для записи бинарных данных (байтов и массивов байтов). Конфликт потоков: Открытие одного потока блокирует возможность открытия другого. Попытка использования обоих потоков в одном запросе приведет к исключению IllegalStateException.
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import javax.servlet.ServletOutputStream;

public class MixedContentServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter writer = response.getWriter();
        ServletOutputStream outputStream = response.getOutputStream(); // Это вызовет IllegalStateException

        writer.println("Hello, World!"); // Пытаемся записать текст
        byte[] imageData = ...; // Получаем бинарные данные
        outputStream.write(imageData); // Пытаемся записать бинарные данные
    }
}
Если требуется отправить как текстовые, так и бинарные данные, это нужно делать последовательно, разделяя логику на отдельные запросы или сервлеты. Отправка текстовых данных:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;

public class TextServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><body><h1>Hello, World!</h1></body></html>");
    }
}
Отправка бинарных данных:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletOutputStream;

public class BinaryServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("application/pdf");
        ServletOutputStream out = response.getOutputStream();
        byte[] pdfData = ...; // Получаем PDF данные
        out.write(pdfData);
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Новые диваны по цене 1 чашки кофе в день?! ⚡Вы не поверите, но реально возможно платить за диван цену 1 чашки кофе за рабочий
Новые диваны по цене 1 чашки кофе в день?! ⚡Вы не поверите, но реально возможно платить за диван цену 1 чашки кофе за рабочий день! 💰Такие низкие цены возможны только в Много Мебели. Как нам удаётся держать выгодные цены для вас: 1. Диваны напрямую с завода без дополнительных наценок; 2. Возможность рассрочки без переплат; 3. Промокод MMSALE для скидки до -3000 рублей! Давайте подсчитаем: средняя стоимость стаканчика кофе составляет 200 рублей, а рабочих дней в месяце 22. Выходит около 4 400 рублей в месяц за кофе. Приобретая диван по цене за 25 000 рублей в рассрочку, вы будете платить в месяц примерно 4 167 рублей То есть, новый диван обойдётся вам даже дешевле 1 чашки кофе в рабочий день! Выгодные покупки только в Много Мебели!✅ Посмотреть каталог #реклама mnogomebeli.com О рекламодателе

🤔 StringBuilder и StringBuffer, в чём различия? StringBuilder быстрее, но не потокобезопасен, тогда как StringBuffer потокобезопасен за счёт синхронизации, но работает медленнее. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В чем разница между Spring аннотациями Component, Repository и Service? Все три аннотации используются в Spring для создания бинов, но у каждой есть своё предназначение. 🚩`@Component` – базовая аннотация для бина @Component помечает класс как Spring-бин (компонент). Является универсальной аннотацией. Можно применять к любым классам, которые должны управляться Spring-контейнером.
@Component
public class MyComponent {
    public void doWork() {
        System.out.println("Работа компонента");
    }
}
🚩`@Service` – для бизнес-логики @Service – это специализированный @Component, используемый для сервисных классов (логика приложения). Упрощает понимание кода (показывает, что этот класс содержит бизнес-логику).
@Service
public class UserService {
    public String getUser() {
        return "Пользователь Иван";
    }
}
🚩`@Repository` – для работы с базой данных @Repository – это специализированный @Component для слоя доступа к данным (DAO, Repository). Автоматически перехватывает SQL-исключения (PersistenceExceptionTranslationPostProcessor) и преобразует их в DataAccessException.
@Repository
public class UserRepository {
    public String findUserById(int id) {
        return "Пользователь с ID " + id;
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 В чём проблема конкатенации строк в Java? Проблема в том, что строки (String) в Java иммутабельны — при каждой конкатенации создаётся новый объект, а старые уходят в сборку мусора. Это приводит к потере производительности при множественных соединениях. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое адаптер? Адаптер (Adapter) – это шаблон проектирования, который используется для приведения интерфейсов несовместимых классов к единому виду. Он выступает посредником между двумя несовместимыми системами. 🚩Пример: Адаптер в Java (Object Adapter) Допустим, у нас есть старый класс OldCharger, который работает с вольтажем 220V, а мы хотим, чтобы он работал с USB (5V). Старый интерфейс (неподходящий)
class OldCharger {
    void charge220V() {
        System.out.println("Зарядка 220V...");
    }
}
Новый интерфейс (нужный)
interface USBCharger {
    void charge5V();
}
Адаптер, который превращает 220V в 5V
class ChargerAdapter implements USBCharger {
    private OldCharger oldCharger;

    public ChargerAdapter(OldCharger oldCharger) {
        this.oldCharger = oldCharger;
    }

    @Override
    public void charge5V() {
        System.out.println("Преобразуем 220V в 5V...");
        oldCharger.charge220V();
    }
}
Использование адаптера
public class Main {
    public static void main(String[] args) {
        OldCharger oldCharger = new OldCharger();
        USBCharger adapter = new ChargerAdapter(oldCharger);

        adapter.charge5V(); // Теперь старая зарядка работает с 5V!
    }
}
Object Adapter (адаптер-объект) – использует композицию (пример выше). Class Adapter (адаптер-класс) – использует наследование (extends).
class ChargerAdapter extends OldCharger implements USBCharger {
    @Override
    public void charge5V() {
        System.out.println("Преобразуем 220V в 5V...");
        charge220V();
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Можно ли применить bind на стрелочную функцию? Нет, у стрелочной функции нет собственного this, bind, call, apply не переопределяют контекст, так как this определяется лексически при создании функции. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие весовые рамки у integer? В Java тип int занимает 4 байта (32 бита) и имеет диапазон: -2^{31} \text{ до } 2^{31} - 1 🚩Точный диапазон `int` 🟠Минимальное значение Integer.MIN_VALUE = -2,147,483,648 🟠Максимальное значение Integer.MAX_VALUE = 2,147,483,647
public class Main {
    public static void main(String[] args) {
        System.out.println("Минимальный int: " + Integer.MIN_VALUE);
        System.out.println("Максимальный int: " + Integer.MAX_VALUE);
    }
}
Вывод:
Минимальный int: -2147483648  
Максимальный int: 2147483647  
🚩Почему именно такой диапазон? 4 байта (32 бита) означают, что у нас 2³² возможных значений. Поскольку int знаковый (поддерживает отрицательные и положительные числа), половина значений отводится подотрицательные числа. Один бит используется для знака (0 – положительное число, 1 – отрицательное). \text{Диапазон} = - (2^{31}) \text{ до } (2^{31} - 1) 🚩Что будет, если выйти за пределы `int`? Если сложить два максимальных значения int, произойдёт переполнение (overflow)
int a = Integer.MAX_VALUE;
int b = 1;
int c = a + b;
System.out.println(c);  // Выведет -2147483648 (переполнение!)
🟠Как работать с числами больше `int`? Использовать `long` (8 байт, диапазон от -2^63 до 2^63 - 1):
long bigNumber = 2_147_483_648L;  // Обязательно добавлять "L" в конце
Использовать BigInteger (неограниченный размер):
BigInteger bigNum = new BigInteger("999999999999999999999999");
Ставь 👍 и забирай 📚 Базу знаний

🤔 В чем разница между checked и unchecked исключениями? Checked исключения — это исключения, которые проверяются во время компиляции, и разработчик обязан обработать их с помощью try-catch или указать в сигнатуре метода с помощью throws. Unchecked исключения не проверяются на этапе компиляции и возникают в результате ошибок времени выполнения (например, NullPointerException). Checked исключения происходят из класса Exception, а unchecked — из класса RuntimeException. Checked исключения обычно используются для предсказуемых ошибок, которые можно обработать. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

📺 Уникальная база IT собеседований 456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы. Е
📺 Уникальная база IT собеседований 456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы. Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д. 🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

🤔 Чем полезны неизменяемые (Immutable) объекты в Java? Неизменяемые (immutable) объекты не могут быть изменены после создания. Если нужно изменить данные – создаётся новый объект. 🚩Почему неизменяемые объекты полезны? 🟠Потокобезопасность (Thread Safety) Неизменяемые объекты можно безопасно использовать в многопоточной среде – их не нужно синхронизировать.
String message = "Hello";
String newMessage = message.replace("H", "J");

System.out.println(message); // Hello
System.out.println(newMessage); // Jello
🟠Отсутствие неожиданных изменений (безопасность данных) Если объект неизменяемый, его нельзя случайно изменить.
class BankAccount {
    private final String accountNumber;

    public BankAccount(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public String getAccountNumber() {
        return accountNumber;
    }
}
🟠Упрощает отладку и поддержку кода Изменяемые объекты могут менять состояние в неожиданный момент.
List<String> list = new ArrayList<>();
list.add("Java");

modifyList(list); // Метод может изменить список!

System.out.println(list); // Ожидаем ["Java"], но может быть что угодно!
🟠Можно использовать в качестве ключей в `HashMap` и `HashSet` Хешкод неизменяемого объекта не изменится, а значит, он корректно работает в HashMap.
Map<String, String> map = new HashMap<>();
map.put("key", "value");

System.out.println(map.get("key")); // Всегда "value", так как String неизменяемый
🟠Совместимость с кэшем (например, в Hibernate, Spring) Неизменяемые объекты можно безопасно кешировать, так как они не меняются. 🚩Как создать неизменяемый класс? Все поля private final. Нет сеттеров. Если есть массивы или списки – копируем их перед возвратом.
final class Person {
    private final String name;
    private final int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое double checked locking Singleton? Это паттерн создания Singleton-а, при котором сначала проверяется наличие экземпляра без синхронизации, потом с синхронизацией, чтобы избежать лишней блокировки при каждом доступе. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний