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

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

Kanalga Telegram’da o‘tish

📈 Telegram kanali Java | Вопросы собесов analitikasi

Java | Вопросы собесов (@easy_java_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 11 449 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 10 899-o'rinni va Rossiya mintaqasida 57 490-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 11 449 obunachiga ega bo‘ldi.

05 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 20 ga, so‘nggi 24 soatda esa 6 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 7.92% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 7.61% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 907 marta ko‘riladi; birinchi sutkada odatda 871 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 0 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent ставь, void, string, строка, static kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+icUwivvbGOkwNWRi Задачи t.me/+8eqUTboisnkyZjQy Вакансии t.me/+4pspF5nDjgM4MjQy

Yuqori yangilanish chastotasi (oxirgi ma’lumot 07 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

11 449
Obunachilar
+624 soatlar
-117 kunlar
+2030 kunlar
Postlar arxiv
Изиоффер переходит в публичное бета-тестирование! 🎉 Что нового: 🟢Анализ IT собеседований на основе 4500+ реальных интервью
Изиоффер переходит в публичное бета-тестирование! 🎉 Что нового: 🟢Анализ IT собеседований на основе 4500+ реальных интервью 🟢Вопросы из собеседований с вероятностью встречи 🟢Видео-примеры ответов на вопросы от Senior, Middle, Junior грейдов 🟢Пример лучшего ответа 🟢Задачи из собеседований 🟢Тестовые задания 🟢Примеры собеседований 🟢Фильтрация всего контента по грейдам, компаниям 🟢Тренажер подготовки к собеседованию на основе интервальных повторений и флеш карточек 🟢Тренажер "Реальное собеседование" с сценарием вопросов из реальных собеседований (скоро) 🟢Автоотклики на HeadHunter 🟢Закрытое сообщество easyoffer 💎 Акция в честь открытия для первых 500 покупателей: 🚀 Скидка 50% на PRO тариф на 1 год 🔥 Акция уже стартовала! 👉 https://easyoffer.ru/pro

🤔 В чем разница между Statement и PreparedStatement? Это два интерфейса в JDBC, которые используются для выполнения SQL-запросов к базе данных. Основные различия между ними касаются производительности, безопасности и удобства использования. 🚩Statement Statement используется для выполнения простых SQL-запросов. Запросы формируются и передаются в базу данных в виде строки. Подходит для простых запросов. Не оптимизирован для повторного выполнения. Каждый раз, когда запрос передается в базу данных, он компилируется и выполняется заново. Уязвим к SQL-инъекциям. Поскольку запрос формируется путем конкатенации строк, злоумышленники могут внедрять вредоносный SQL-код.
Statement stmt = connection.createStatement();
String query = "SELECT * FROM employees WHERE department = 'HR'";
ResultSet rs = stmt.executeQuery(query);

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println("ID: " + id + ", Name: " + name);
}
stmt.close();
🟠PreparedStatement PreparedStatement используется для выполнения предварительно скомпилированных SQL-запросов. Это позволяет повысить производительность и безопасность. Оптимизирован для повторного выполнения. Запрос компилируется только один раз, а затем может многократно выполняться с разными параметрами, что повышает производительность. Защита от SQL-инъекций. Использует параметризованные запросы, которые помогают избежать уязвимостей, связанных с SQL-инъекциями. Удобство работы с параметрами. Позволяет устанавливать значения параметров с использованием методов setInt(), setString() и других.
String query = "SELECT * FROM employees WHERE department = ?";
PreparedStatement pstmt = connection.prepareStatement(query);
pstmt.setString(1, "HR");
ResultSet rs = pstmt.executeQuery();

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println("ID: " + id + ", Name: " + name);
}
pstmt.close();
🚩Основные различия 🟠Производительность Statement: Каждый запрос компилируется заново, что снижает производительность при многократном выполнении одного и того же запроса. PreparedStatement: Запрос компилируется один раз и может многократно выполняться с разными параметрами, что повышает производительность. 🟠Безопасность Statement: Уязвим к SQL-инъекциям, поскольку запросы формируются путем конкатенации строк. PreparedStatement: Использует параметризованные запросы, что защищает от SQL-инъекций. 🟠Удобство использования Statement: Подходит для простых, одноразовых запросов. PreparedStatement: Удобен для многократного выполнения запросов с разными параметрами. 🟠Типы запросов Оба интерфейса могут выполнять запросы типа SELECT, INSERT, UPDATE, DELETE, но PreparedStatement более удобен для запросов с параметрами. Ставь 👍 и забирай 📚 Базу знаний

Wink AI Challenge — хакатон на стыке IT и кино. Участников ждут задачи, которые ускорят производство фильмов и сериалов за сч
Wink AI Challenge — хакатон на стыке IT и кино. Участников ждут задачи, которые ускорят производство фильмов и сериалов за счёт прикладных AI-решений. Призовой фонд соревнования — 1 125 000 рублей. Регистрация до 31 октября: https://cnrlink.com/winkaichallengeeasyjava Приглашаем на первый в России хакатон, посвящённый применению ИИ в кинопроизводстве, ML-инженеров, backend- и frontend-разработчиков, специалистов в DevOps, MLOps, а также инженеров в сфере мультимедиа. Вы сможете: 🔸 Разработать ML-модель, которую оценят и будут использовать продюсеры популярных российских фильмов и сериалов.   🔸 Решить кейсы, основанные на реальных задачах, с которыми продюсеры сталкиваются каждый день. 🔸 Использовать настоящие сценарии и видеоматериалы для анализа текстов, извлечения сущностей и генерации структуры съёмок. 🔸 Попрактиковаться в применении NLP, NER и мультимодальных данных в задачах кинопроизводства. Регистрируйтесь на Wink AI Challenge, чтобы разработать ИИ-ассистента, который станет частью производства фильмов и сериалов: https://cnrlink.com/winkaichallengeeasyjava

Зачем тратить время и деньги ...на десяток приложений для работы, если есть Битрикс24? Бесплатный онлайн-сервис для совместно
Зачем тратить время и деньги ...на десяток приложений для работы, если есть Битрикс24? Бесплатный онлайн-сервис для совместной работы и бизнеса. ✨Всё нужное здесь, и вот как это работает: внутри одного окна все обсуждения, задачи, встречи, видеозвонки, диалоги с ИИ-помощником и даже с внешними командами в Коллабах. Команда оценит. Регистрируйтесь и приглашайте всех Зарегистрироваться #реклама 16+ office-online.bitrix24.ru О рекламодателе

🤔 Как проверить, удерживает ли поток монитор определённого ресурса? В Java напрямую нельзя узнать, удерживает ли поток монитор объекта. Можно использовать средства профилирования (например, VisualVM, jstack) или синхронизацию состояния вручную. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Что такое шардирование? Шардирование – это метод горизонтального разделения базы данных на несколько частей (шардов) для повышения производительности и масштабируемости. 🚩Популярные стратегии шардирования 🟠По диапазону (Range-Based Sharding) Данные делятся по диапазону значений (например, ID 1–1000, 1001–2000). 🟠По хешу (Hash-Based Sharding) Данные распределяются с помощью хеш-функции.
int shardNumber = userId % numberOfShards;
🟠Географическое (Geo-Based Sharding) Данные разделяются по географическому признаку (например, Европа, Азия, США). Минимальная задержка (пользователь получает данные ближе к себе) Некоторые регионы могут перегружаться. Ставь 👍 и забирай 📚 Базу знаний

🤔 Какие протоколы передачи данных есть? Среди основных протоколов: TCP, UDP, FTP, HTTP, HTTPS, SMTP, POP3, IMAP, SSH и другие. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Расскажи про Hash Code & Equals Contract Когда вы переопределяете методы equals() и hashCode(), важно соблюдать контракт, иначе объект может вести себя некорректно в коллекциях (HashMap, HashSet и др.). 🚩Контракт `equals()` Метод equals() определяет, когда два объекта равны. Рефлексивность – x.equals(x) всегда true. Симметричность – x.equals(y) == y.equals(x). Транзитивность – если x.equals(y) и y.equals(z), то x.equals(z). Согласованность – многократные вызовы x.equals(y) дают один и тот же результат. Сравнение с null всегда falsex.equals(null) == false.
class Person {
    private String name;
    private int age;

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

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;  // Проверка на одинаковые ссылки
        if (obj == null || getClass() != obj.getClass()) return false; // Проверка типа
        Person person = (Person) obj;
        return age == person.age && name.equals(person.name); // Сравнение полей
    }
}
🚩Контракт `hashCode()` Метод hashCode() возвращает числовой хеш-код объекта. Он должен соответствовать equals()! Если x.equals(y) == true, то x.hashCode() == y.hashCode(). Если x.hashCode() != y.hashCode(), то x.equals(y) == false (но обратное не всегда верно). Хеш-код должен оставаться неизменным, если объект не изменяется.
@Override
public int hashCode() {
    return Objects.hash(name, age);
}
🚩Почему контракт `equals()` и `hashCode()` важен? В коллекциях, таких как HashSet, HashMap, HashTable, объекты хранятся по хеш-коду. Что будет, если equals() переопределён, но hashCode() – нет?
Set<Person> people = new HashSet<>();
people.add(new Person("Иван", 25));
people.add(new Person("Иван", 25)); // Ожидаем, что не добавится

System.out.println(people.size()); // ❌ Будет 2, а не 1, если `hashCode()` отсутствует!
Правильный вариант (equals() + hashCode())
class Person {
    private String name;
    private int age;

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

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Person person = (Person) obj;
        return age == person.age && name.equals(person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что нам даёт Dependency Injection? - Ослабляет связанность кода (low coupling); - Повышает тестируемость кода (легко внедрять моки); - Упрощает сопровождение и масштабирование приложений. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 На
Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 Начните прямо сейчас ⚡ Зарегистрироваться #реклама direct.yandex.ru О рекламодателе

🤔 После какого момента GC понимает, что нужно собирать мусор? Garbage Collector (GC) в Java начинает сборку мусора, когда объекты в памяти больше не используются и не имеют активных ссылок. 🟠Основное правило: объект считается мусором, если нет на него ссылок GC понимает, что объект можно удалить, если на него больше не ссылается ни одна переменная или он стал недостижимым.
class Demo {
    int value;
}

public class Main {
    public static void main(String[] args) {
        Demo obj = new Demo(); // Создан объект в памяти (Heap)
        obj = null; // Теперь на него нет ссылки → GC его удалит
    }
}
🚩Когда GC запускается? 🟠Недостаток памяти (Low Memory) Если в куче (Heap) осталось мало свободной памяти, JVM может запустить GC. 🟠Алгоритмы JVM (GC работает автоматически) GC в Java автоматический, и его запуск зависит от алгоритма сборщика мусора. Некоторые из них: Serial GC (для маленьких программ) Parallel GC (по умолчанию в Java 8) G1 GC (по умолчанию в Java 11+) ZGC, Shenandoah GC (для высоконагруженных систем) 🚩Способы обнаружения "мусора" 🟠Счётчик ссылок (Reference Counting) Устарело, потому что не умеет работать с циклическими ссылками. 🟠Алгоритм "Reachability" (Достижимость) Основной метод, который использует GC в Java. 🟠Алгоритм достижимости (Reachability Analysis) GC начинает с корневых объектов (GC Roots) и проверяет, какие объекты достижимы. Ставь 👍 и забирай 📚 Базу знаний

REKONFA Live 6 ноября приглашаем рекламодателей, агентства и рекламные площадки обсудить технологии, маркетинговые инструмент
REKONFA Live 6 ноября приглашаем рекламодателей, агентства и рекламные площадки обсудить технологии, маркетинговые инструменты и актуальные новинки. Ключевые участники рынка поделятся опытом и расскажут: — О ситуации на рынке рекламы — Как продвигать и продавать в интернете в 2025 году — Как бизнесу адаптироваться к меняющимся условиям Вас ждут доклады на актуальные темы, классный нетворкинг, вдохновляющая атмосфера для творчества и креатива. Встречаемся 6 ноября в Москве. Для тех, кто не сможет приехать, организуем интерактивное digital-шоу. Мероприятие бесплатное, нужно только зарегистрироваться. Зарегистрироваться #реклама 18+ ya.rekonfa.ru О рекламодателе

🤔 Что известно о полном синтаксисе SELECT в реляционной БД? Полный синтаксис SELECT включает: SELECT [DISTINCT] поля FROM таблицы [JOIN] [WHERE условия] [GROUP BY] [HAVING] [ORDER BY] [LIMIT/OFFSET]. Это мощный оператор, который позволяет извлекать, фильтровать, сортировать и агрегировать данные. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Чем stub отличается от mock? В тестировании разница между Stub и Mock заключается в их предназначении и способе использования. 🚩Stub (Заглушка) Stub – это простейший объект-заглушка, который возвращает заранее заданные данные. Он не проверяет, какие методы были вызваны, а просто отвечает на запросы.
class UserRepositoryStub implements UserRepository {
    @Override
    public User findById(Long id) {
        return new User(id, "Иван"); // Просто возвращает статичные данные
    }
}
🚩Mock (Макет) Mock – это объект, который имитирует поведение реального объекта и позволяет проверять вызовы методов (сколько раз был вызван, с какими аргументами и т. д.).
UserRepository userRepository = mock(UserRepository.class);
when(userRepository.findById(1L)).thenReturn(new User(1L, "Иван"));

User user = userRepository.findById(1L);

verify(userRepository, times(1)).findById(1L); // Проверяем, что метод был вызван 1 раз
Ставь 👍 и забирай 📚 Базу знаний

Запишитесь на онлайн-демо МТС Линк и сравнение со Skype 📅 Меньше 30 дней до прекращения поддержки Skype for Business в Росси
Запишитесь на онлайн-демо МТС Линк и сравнение со Skype 📅 Меньше 30 дней до прекращения поддержки Skype for Business в России. После 14 октября: • вырастут риски уязвимостей и утечек данных; • перестанут поддерживаться новые версии операционных систем и SQL-серверов; • все сбои придётся закрывать силами IT-отдела. Какие еще риски ждут ИТ-директоров, CTO и техспециалистов? На какое российское решение стоит заменить Skype? ✅ Запишитесь на онлайн-демонстрацию МТС Линк. Вы узнаете: - как организовать онлайн-коммуникацию вашей компании; - как организовать единое пространство для общения коллег; - возможности для администраторов и пользователей. 🎓 Бонус: руководство по безопасной миграции со Skype на российские платформы. Забронируйте место на демо по ссылке Забронировать #реклама 16+ mts-link.ru О рекламодателе

🤔 Чем отличаются TCP и UDP? TCP — это протокол с установлением соединения, обеспечивающий надежную доставку данных. UDP — это протокол без соединения, работающий быстрее, но без гарантий доставки или порядка следования пакетов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Где в обработке исключений может применяться конструкция с finally? Конструкция finally в Java используется для гарантированного выполнения кода, независимо от того, произошло исключение или нет. Обычно применяется для освобождения ресурсов, таких как закрытие файлов, соединений с базой данных или потоков. 🚩Основная структура
try {
    // Код, который может выбросить исключение
} catch (Exception e) {
    // Обработка исключения
} finally {
    // Этот блок выполнится всегда
}
Пример
FileInputStream fileInputStream = null;
try {
    fileInputStream = new FileInputStream("file.txt");
    System.out.println(fileInputStream.read());
} catch (IOException e) {
    System.out.println("Ошибка: " + e.getMessage());
} finally {
    if (fileInputStream != null) {
        fileInputStream.close(); // Всегда закрываем файл
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Гарантирует ли HashMap указанную сложность выборки элемента? Только при равномерном распределении хешей — да, O(1). Если ключи имеют коллизии, и корзины переполнены — время может увеличиться до O(log n) (в случае использования TreeNodes) или O(n) (в старых версиях). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Является ли пустым пул строк при старте jar файла или там есть какие-то значения? Пул строк в Java не является пустым при старте JAR файла. Он изначально содержит несколько предопределенных строковых литералов, которые JVM использует для своей внутренней работы, а также строковые литералы, используемые в загруженных классах и стандартных библиотеках. 🚩Что изначально содержится 🟠Предопределенные строковые литералы JVM и стандартные библиотеки Java используют различные строковые литералы для своей работы. Эти строки добавляются в пул строк при запуске JVM. Примеры таких строк включают имена основных классов и пакетов (например, "java/lang/Object", "java/lang/String"). 🟠Строковые литералы, используемые в загруженных классах Когда классы загружаются JVM, все строковые литералы, используемые в этих классах, добавляются в пул строк. Это включает строки, используемые в JAR файле, а также строки из стандартных библиотек Java, которые загружаются при старте. 🚩Пример строк в пуле при старте Для демонстрации этого можно написать простой код, который проверяет, присутствуют ли определенные строки в пуле строк при старте программы.
public class StringPoolDemo {
    public static void main(String[] args) {
        // Проверка стандартных строк, которые могут быть в пуле строк
        String str1 = "java";
        String str2 = "lang";
        String str3 = "Object";

        // Вывод строк
        System.out.println("str1: " + str1);
        System.out.println("str2: " + str2);
        System.out.println("str3: " + str3);

        // Проверка строк в пуле строк
        System.out.println("Is 'java' in pool: " + (str1 == "java"));
        System.out.println("Is 'lang' in pool: " + (str2 == "lang"));
        System.out.println("Is 'Object' in pool: " + (str3 == "Object"));
    }
}
🚩Что происходит при старте JVM 🟠Инициализация JVM При запуске JVM загружаются системные классы, такие как java.lang.Object, java.lang.String, java.lang.System, и другие. Строковые литералы, используемые в этих классах, добавляются в пул строк. 🟠Загрузка пользовательских классов Когда JVM загружает пользовательские классы из JAR файла, все строковые литералы в этих классах также добавляются в пул строк. Ставь 👍 и забирай 📚 Базу знаний