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 450 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 450 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 06 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 450
Obunachilar
+624 soatlar
-117 kunlar
+2030 kunlar
Postlar arxiv
Продвижение в Telegram с помощью Яндекс Директа ⚡Запустите продвижение в телеграм-каналах и привлекайте целевую аудиторию 📱
+3
Продвижение в Telegram с помощью Яндекс Директа ⚡Запустите продвижение в телеграм-каналах и привлекайте целевую аудиторию 📱 Таргетинг по тематикам, регионам и каналам в Telegram Попробовать #реклама yandex.ru О рекламодателе

🤔 В чем разница Spring Boot и Spring? Spring и Spring Boot являются частью экосистемы, которая предоставляет широкий спектр инструментов для разработки современных Java-приложений. Несмотря на тесную связь, между ними есть ключевые отличия. 🚩Spring Framework Это мощный и широко используемый фреймворк для разработки приложений на Java. Он предоставляет обширный набор функциональностей, включая инверсию управления (IoC) и внедрение зависимостей (DI), абстракции для работы с транзакциями, обработку исключений, поддержку аспектно-ориентированного программирования (AOP) и многое другое. Он предназначен для упрощения Java EE разработки, обеспечивая легкость создания масштабируемых и легко поддерживаемых приложений. 🚩Spring Boot С другой стороны, представляет собой расширение Spring Framework, предназначенное для упрощения процесса конфигурации и развертывания Spring-приложений. Он автоматизирует многие процессы, предоставляя "готовые к использованию" настройки для быстрого старта проектов и избавления от необходимости вручную определять стандартную конфигурацию. 🚩Различия 🟠Цель Spring Framework предоставляет основу для создания приложений на Java, в то время как Spring Boot предлагает конвенции и автоматическую конфигурацию для быстрого старта и развертывания приложений. 🟠Конфигурация В Spring для настройки приложения часто требуется детальная конфигурация, включая XML-файлы или аннотации. Spring Boot стремится уменьшить эту сложность, автоматически конфигурируя компоненты на основе добавленных в проект зависимостей. 🟠Встроенный сервер Spring Boot по умолчанию включает в себя встроенный сервер приложений, что упрощает развертывание и тестирование веб-приложений. Ставь 👍 и забирай 📚 Базу знаний

🤔 Какими инструментами пользовался помимо Java? В зависимости от задач, могли использоваться: - Git, Maven, Gradle, Docker; - Postman, Swagger — для работы с API; - IntelliJ IDEA — как IDE; - Prometheus, Grafana, Kibana — для мониторинга; - JUnit, Mockito — для тестов; - SQL — для работы с базами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое функциональный интерфейс? Функциональный интерфейс —это интерфейс, который содержит только один абстрактный метод. Это позволяет использовать лямбда-выражения для создания его анонимных реализаций, делая код более лаконичным и читаемым. Функциональные интерфейсы являются основой для лямбда-выражений и методов ссылок, начиная с версии 8. Примером этого может служить интерфейс java.util.function.Predicate<T> который принимает объект типа T и возвращает значение типа boolean. Вот пример использования: Predicate<String> isNotEmpty = s -> !s.isEmpty(); System.out.println(isNotEmpty.test("Hello")); // Выведет true System.out.println(isNotEmpty.test("")); // Выведет false Чтобы явно указать, что интерфейс предназначен для использования как функциональный, используется аннотация @FunctionalInterface. Эта аннотация не обязательна (компилятор может определить функциональный интерфейс и без неё), но она помогает в документировании кода и обеспечивает проверку времени компиляции, гарантируя, что интерфейс содержит только один абстрактный метод. @FunctionalInterface public interface SimpleFunction { int apply(int value); } // Использование SimpleFunction triple = value -> value * 3; System.out.println(triple.apply(5)); // Выведет 15 Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое static метод интерфейса? Это метод с реализацией, объявленный внутри интерфейса как static. Он не наследуется и вызывается только через имя интерфейса. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Опиши разницу типов данных DATETIME и TIMESTAMP? В MySQL (и других реляционных БД) типы данных DATETIME и TIMESTAMP используются для хранения даты и времени, но у них есть несколько ключевых отличий. 🚩Когда использовать `DATETIME` и `TIMESTAMP`? Используйте DATETIME, если: Нужно хранить фиксированное значение даты и времени, не зависящее от часового пояса. Работаете с датами за пределами 1970-2038 гг. Требуется удобочитаемый формат (без конверсий). Используйте TIMESTAMP, если: Нужно учитывать часовой пояс (например, хранить время в UTC, а при запросе автоматически конвертировать в локальное). Важно автоматическое обновление при изменении строки (ON UPDATE CURRENT_TIMESTAMP). Нужно экономить память (занимает в 2 раза меньше места, чем DATETIME). 🚩Примеры DATETIME (Фиксированная дата и время)
CREATE TABLE events (
    id INT PRIMARY KEY,
    event_time DATETIME NOT NULL
);

INSERT INTO events VALUES (1, '2025-02-17 12:30:00');
TIMESTAMP (Автообновление + Часовые пояса)
CREATE TABLE logs (
    id INT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Если изменим time_zone, TIMESTAMP отобразится в новом часовом поясе.
SET time_zone = 'Europe/Moscow';
SELECT created_at FROM logs;
Ставь 👍 и забирай 📚 Базу знаний

Привет, это Андрей из Сервер Молл :) Дедушка Мороз нам шепнул, что в 2025 году кое-кто был хорошим сисадмином и заслужил топо
Привет, это Андрей из Сервер Молл :) Дедушка Мороз нам шепнул, что в 2025 году кое-кто был хорошим сисадмином и заслужил топовое серверное оборудование под ёлку. Почему стоит заказать сейчас? Вы можете закрыть бюджет по старой ставке НДС — с 2026 года она вырастет на 2%. Закупая оборудование в декабре, вы фиксируете цену и экономите. Что вас ждёт: ✅ До 5 лет гарантии с выездом инженера; Бесплатная доставка по России; Подбор оборудования с личным менеджером — под задачу и бюджет; КП за час или быстрее; Постпродажная поддержка на всём жизненном цикле. И ещё, Дед Мороз просил передать, что сани с конями уже запряжены, чтобы успеть привезти вам серверы до новогодних каникул :) Наши менеджеры всегда на связи: 8 800 755-25-51 или в чате на сайте. С наступающим Новым годом и Рождеством! Команда Сервер Молл 😊 Перейти на сайт #реклама servermall.ru О рекламодателе

🤔 Какова структура веб-проекта? - /WEB-INF/ — служебные файлы проекта; - /WEB-INF/web.xml — дескриптор развертывания; - /WEB-INF/lib/ — сторонние библиотеки; - /WEB-INF/classes/ — скомпилированные классы; - /static/ или /public/ — ресурсы (CSS, JS, изображения). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В чем разница между шаблоном проектирования Builder и Facade? 🚩`Builder` – создание сложных объектов Когда у объекта много параметров. Когда объект трудно создавать через конструктор.
class Car {
    private String engine;
    private int wheels;
    private boolean sunroof;

    private Car(CarBuilder builder) {
        this.engine = builder.engine;
        this.wheels = builder.wheels;
        this.sunroof = builder.sunroof;
    }

    public static class CarBuilder {
        private String engine;
        private int wheels;
        private boolean sunroof;

        public CarBuilder setEngine(String engine) {
            this.engine = engine;
            return this;
        }

        public CarBuilder setWheels(int wheels) {
            this.wheels = wheels;
            return this;
        }

        public CarBuilder setSunroof(boolean sunroof) {
            this.sunroof = sunroof;
            return this;
        }

        public Car build() {
            return new Car(this);
        }
    }
}
Создаём объект пошагово
Car car = new Car.CarBuilder()
    .setEngine("V8")
    .setWheels(4)
    .setSunroof(true)
    .build();
🚩`Facade` – упрощение сложной системы Когда у системы много сложных классов, и вы хотите предоставить один упрощённый интерфейс. Когда нужно скрыть детали реализации от клиента.
class CPU {
    void start() { System.out.println("Процессор запущен."); }
}

class Memory {
    void load() { System.out.println("Память загружена."); }
}

class HardDrive {
    void read() { System.out.println("Чтение данных с диска."); }
}
Создаём Facade, который скрывает сложность
class ComputerFacade {
    private CPU cpu;
    private Memory memory;
    private HardDrive hardDrive;

    public ComputerFacade() {
        this.cpu = new CPU();
        this.memory = new Memory();
        this.hardDrive = new HardDrive();
    }

    public void startComputer() {
        cpu.start();
        memory.load();
        hardDrive.read();
        System.out.println("Компьютер включен!");
    }
}
Теперь клиенту не нужно вызывать кучу методов
ComputerFacade computer = new ComputerFacade();
computer.startComputer(); // Запускает всю систему через 1 метод
Ставь 👍 и забирай 📚 Базу знаний

Бесплатная защита от DDoS-атак 📱 DDoS-атаки способны замедлить сайт или полностью вывести его из строя. Особенно это критичн
Бесплатная защита от DDoS-атак 📱 DDoS-атаки способны замедлить сайт или полностью вывести его из строя. Особенно это критично в пиковые сезоны или во время распродаж, когда каждая минута простоя сайта равна потерянным клиентам. 👍 AntiDDoS от Solar Space — облачное решение для защиты сайта от DDoS-атак. Бесплатный тариф подходит для небольших ресурсов: сайтов-визиток, сайтов экспертов и корпоративных порталов. ✅ Решение не требует сложных настроек: после активации сервис сразу начинает фильтровать трафик и подавлять атаки. 👌 Подключение занимает всего 20 минут в личном кабинете. Никаких карт, подписок и скрытых платежей. Включить #реклама 16+ rt-solar.ru О рекламодателе

🤔 Какую конфигурацию бы убрал? Я бы убрал XML-конфигурацию в новых проектах — она громоздкая, сложная в поддержке и плохо масштабируется по сравнению с Java-конфигурацией и аннотациями. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Каким образом можно заставить поток выполнится приоритет и есть ли такая возможность в Java? В Java у каждого потока есть приоритет, но он не гарантирует порядок выполнения. 🟠Использование `setPriority(int priority)` Java позволяет задавать приоритет потока с помощью метода setPriority(), который принимает значение от 1 до 10: Thread.MIN_PRIORITY (1) – минимальный приоритет Thread.NORM_PRIORITY (5) – стандартный приоритет (по умолчанию) Thread.MAX_PRIORITY (10) – максимальный приоритет
class MyThread extends Thread {
    public MyThread(String name, int priority) {
        super(name);
        setPriority(priority);
    }

    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.println(getName() + " выполняется с приоритетом " + getPriority());
        }
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread low = new MyThread("Low Priority", Thread.MIN_PRIORITY);
        MyThread high = new MyThread("High Priority", Thread.MAX_PRIORITY);

        low.start();
        high.start();
    }
}
🟠Почему `setPriority()` не даёт 100% контроль? Приоритет – это всего лишь рекомендация для ОС. Распределение процессорного времени зависит от планировщика ОС. В Windows, Linux, macOS приоритеты работают по-разному, и Java не контролирует их на низком уровне. 🟠Как действительно заставить поток выполниться первым? Реальные способы управления порядком выполнения: а) Использование join() Позволяет дождаться выполнения одного потока перед запуском другого.
public class Main {
    public static void main(String[] args) throws InterruptedException {
        Thread high = new MyThread("High Priority", Thread.MAX_PRIORITY);
        Thread low = new MyThread("Low Priority", Thread.MIN_PRIORITY);

        high.start();
        high.join(); // Ждём, пока high завершится

        low.start(); // Теперь запускается low
    }
}
б) Использование Executors.newSingleThreadExecutor() Позволяет гарантированно выполнять потоки по очереди.
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Main {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newSingleThreadExecutor();

        executor.submit(() -> System.out.println("Задача 1"));
        executor.submit(() -> System.out.println("Задача 2"));

        executor.shutdown();
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Цифровое тридевятое царство появилось в Облаке Mail ✨ Очень сказочные дела творятся в Облаке Mail ✨ Отгадайте загадку про ска
+8
Цифровое тридевятое царство появилось в Облаке Mail ✨ Очень сказочные дела творятся в Облаке Mail ✨ Отгадайте загадку про сказочных героев и волшебные силы подписки Mail Space. Кто правильно отгадает, получит дивные подарки. ❤️ Перейти на сайт #реклама 16+ cloud.mail.ru О рекламодателе

🤔 Какие виды внедрения зависимости есть? 1. Через конструктор (Constructor Injection): зависимости передаются как параметры конструктора. 2. Через сеттеры или методы (Setter/Method Injection): зависимости устанавливаются через сеттеры или методы после создания объекта. 3. Через поле (Field Injection): зависимости внедряются напрямую в поля с использованием аннотаций, например, @Autowired. 4. Интерфейсное внедрение (Interface Injection): зависимости задаются через методы интерфейса (редко используется). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

🤔 Что лежит в основе Spring? В основе фреймворка Spring лежит концепция инверсии управления (IoC, Inversion of Control) и внедрения зависимостей (DI, Dependency Injection). Эти принципы обеспечивают гибкость, расширяемость и удобство в управлении зависимостями между компонентами приложения, делая код более модульным, тестируемым и поддерживаемым. 🚩Инверсия управления (IoC) Это парадигма, при которой контроль над выполнением программы частично или полностью передаётся фреймворку или библиотеке. В контексте Spring IoC означает, что сам фреймворк управляет созданием объектов и их жизненным циклом, а не программист напрямую. Это достигается через использование "контейнера IoC", который автоматически создаёт и связывает объекты в соответствии с конфигурацией приложения, заданной в XML-файлах, аннотациях или Java-конфигурации. 🚩Внедрение зависимостей (DI) Это техника реализации IoC, при которой объектам "внедряются" или "предоставляются" их зависимости извне. Вместо того чтобы компоненты приложения самостоятельно создавали или искали необходимые им объекты (зависимости), Spring контейнер автоматически предоставляет им все необходимые зависимости в момент создания объекта. Это уменьшает связность между компонентами и упрощает управление зависимостями, а также их изменение и тестирование. 🚩Основные компоненты 🟠Spring Core Container Включает в себя IoC и DI, обеспечивая основу для фреймворка. 🟠Spring AOP (Aspect-Oriented Programming) Позволяет реализовывать поперечные задачи (например, логирование, транзакции) в виде аспектов, не изменяя основной бизнес-логики. 🟠Spring MVC Фреймворк для создания веб-приложений по модели MVC. 🟠Spring Boot Предоставляет набор инструментов для быстрой разработки и запуска приложений с минимальной конфигурацией. 🟠Spring Data Упрощает доступ к данным, работу с базами данных и операциями CRUD. 🟠Spring Security Предоставляет комплексные средства безопасности для аутентификации и авторизации. Ставь 👍 и забирай 📚 Базу знаний

Бесплатный тест драйв профессии дизайнер с наставником Сделай 6 кейсов с нуля и получи готовое портфолио в формате Reels для
Бесплатный тест драйв профессии дизайнер с наставником Сделай 6 кейсов с нуля и получи готовое портфолио в формате Reels для привлечения первых клиентов 🎓 Освоишь Figma и протестируешь 3 направления: графический, веб и UX/UI дизайн 📊 Создашь 6 кейсов: сайт, карточку МП, баннеры и презентации 💰Узнаешь, почему digital-дизайнерам платят до 250 000 ₽ И получишь пошаговую стратегию выхода на cтабильный доход: Без поиска клиентов 24/7, без бирж фриланса, без продаж и без копеечных заказов на 300 ₽ Формат как на стажировке: Живые уроки, всё в Telegram, личные видео-разборы от дизайнеров ✨ Розыгрыш AirPods для всех, кто дойдет до конца Попробовать #реклама 16+ study.logomachine.ru О рекламодателе

🤔 Является ли аргумент локальной переменной? Да. Аргументы метода — это локальные переменные, которые: - Инициализируются значением, переданным при вызове. - Доступны только внутри тела метода. - Не сохраняются после завершения метода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Для чего нужен функциональный интерфейс BiConsumer<T,U>? BiConsumer<T, U> — это функциональный интерфейс из пакета java.util.function, который принимает два входных аргумента и не возвращает результат. Сигнатура BiConsumer<T, U>
@FunctionalInterface
public interface BiConsumer<T, U> {
    void accept(T t, U u);
}
🚩Вывод пар значений Допустим, у нас есть Map<String, Integer>, и мы хотим вывести все ключи и значения:
import java.util.Map;
import java.util.function.BiConsumer;

public class BiConsumerExample {
    public static void main(String[] args) {
        Map<String, Integer> map = Map.of("Alice", 30, "Bob", 25, "Charlie", 35);

        // Используем BiConsumer для вывода ключа и значения
        BiConsumer<String, Integer> printEntry = (key, value) -> 
            System.out.println("Имя: " + key + ", возраст: " + value);

        // Применяем BiConsumer к каждому элементу Map
        map.forEach(printEntry);
    }
}
Вывод
Имя: Alice, возраст: 30  
Имя: Bob, возраст: 25  
Имя: Charlie, возраст: 35  
🚩Использование `BiConsumer` в `Stream` Допустим, у нас есть список продуктов и их цены. Мы хотим увеличить цену каждого товара и напечатать результат.
import java.util.*;
import java.util.function.BiConsumer;

public class BiConsumerStreamExample {
    public static void main(String[] args) {
        Map<String, Double> products = new HashMap<>();
        products.put("Хлеб", 50.0);
        products.put("Молоко", 80.0);
        products.put("Яблоки", 120.0);

        // BiConsumer, который увеличивает цену и выводит её
        BiConsumer<String, Double> increaseAndPrint = (name, price) -> {
            double newPrice = price * 1.1; // +10%
            System.out.println(name + " теперь стоит " + newPrice);
        };

        products.forEach(increaseAndPrint);
    }
}
Вывод
Хлеб теперь стоит 55.0  
Молоко теперь стоит 88.0  
Яблоки теперь стоят 132.0  
🚩Объединение `BiConsumer` с `andThen()` Метод andThen(BiConsumer<T, U>) позволяет объединять несколько действий в цепочку.
import java.util.function.BiConsumer;

public class BiConsumerChaining {
    public static void main(String[] args) {
        BiConsumer<String, Integer> printUser = (name, age) -> 
            System.out.println("Пользователь: " + name + ", возраст: " + age);

        BiConsumer<String, Integer> checkAdult = (name, age) -> 
            System.out.println(name + (age >= 18 ? " совершеннолетний" : " несовершеннолетний"));

        // Объединяем два BiConsumer'а
        BiConsumer<String, Integer> combined = printUser.andThen(checkAdult);

        combined.accept("Алексей", 20);
        combined.accept("Мария", 16);
    }
}
Вывод:
Пользователь: Алексей, возраст: 20  
Алексей совершеннолетний  
Пользователь: Мария, возраст: 16  
Мария несовершеннолетний
Ставь 👍 и забирай 📚 Базу знаний

Надо брать Смартфоны Tecno серии Camon 40 со скидками до 20% Купить #реклама market.yandex.ru О рекламодателе
Надо брать Смартфоны Tecno серии Camon 40 со скидками до 20% Купить #реклама market.yandex.ru О рекламодателе