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

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

Ir al canal en Telegram

📈 Análisis del canal de Telegram Java | Вопросы собесов

El canal Java | Вопросы собесов (@easy_java_ru) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 11 447 suscriptores, ocupando la posición 10 899 en la categoría Tecnologías y Aplicaciones y el puesto 57 490 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 11 447 suscriptores.

Según los últimos datos del 06 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de 9, y en las últimas 24 horas de -3, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 7.92%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 7.58% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 907 visualizaciones. En el primer día suele acumular 868 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 0.
  • Intereses temáticos: El contenido se centra en temas clave como ставь, void, string, строка, static.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+icUwivvbGOkwNWRi Задачи t.me/+8eqUTboisnkyZjQy Вакансии t.me/+4pspF5nDjgM4MjQy

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 08 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

11 447
Suscriptores
-324 horas
-117 días
+930 días
Archivo de publicaciones
🤔 Так ли хороша синхронизация при помощи synchronized? Плюсы: - просто и понятно; - встроена в язык; - достаточно для большинства задач. Минусы: - может вызывать блокировки и снижать производительность; - нет гибкости (нельзя легко попытаться захватить, или сделать timeout); - не масштабируется на сложные сценарии. Для сложных кейсов лучше использовать Lock. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие классы поддерживают чтение и запись потоков в компрессированном формате? Java предоставляет встроенные классы для чтения и записи сжатых данных в формате ZIP, GZIP и других. Эти классы находятся в пакете java.util.zip. 🚩GZIP (формат `.gz`) GZIPOutputStream – сжимает данные в формат .gz. GZIPInputStream – разжимает данные из .gz.
import java.io.*;
import java.util.zip.*;

public class GZipExample {
    public static void main(String[] args) throws IOException {
        String data = "Привет, мир! Это тестовая строка для GZIP.";

        // Сжатие в .gz
        try (FileOutputStream fos = new FileOutputStream("data.gz");
             GZIPOutputStream gzos = new GZIPOutputStream(fos)) {
            gzos.write(data.getBytes());
        }

        // Разжатие .gz
        try (FileInputStream fis = new FileInputStream("data.gz");
             GZIPInputStream gzis = new GZIPInputStream(fis);
             BufferedReader reader = new BufferedReader(new InputStreamReader(gzis))) {
            System.out.println("Разжатый текст: " + reader.readLine());
        }
    }
}
🚩ZIP (формат `.zip`) ZipOutputStream – создаёт ZIP-архив. ZipInputStream – извлекает файлы из ZIP.
import java.io.*;
import java.util.zip.*;

public class ZipExample {
    public static void main(String[] args) throws IOException {
        String fileName = "example.txt";
        String zipFile = "archive.zip";

        // Создаём файл для сжатия
        try (FileWriter writer = new FileWriter(fileName)) {
            writer.write("Привет, это файл для архивации!");
        }

        // Запись в ZIP
        try (FileOutputStream fos = new FileOutputStream(zipFile);
             ZipOutputStream zos = new ZipOutputStream(fos);
             FileInputStream fis = new FileInputStream(fileName)) {

            ZipEntry entry = new ZipEntry(fileName);
            zos.putNextEntry(entry);

            byte[] buffer = new byte[1024];
            int length;
            while ((length = fis.read(buffer)) > 0) {
                zos.write(buffer, 0, length);
            }
        }

        System.out.println("Файл заархивирован в " + zipFile);
    }
}
🚩Deflater/Inflater (общая компрессия без формата) DeflaterOutputStream – сжимает данные без специфического формата. InflaterInputStream – разжимает такие данные.
import java.io.*;
import java.util.zip.*;

public class DeflaterExample {
    public static void main(String[] args) throws IOException {
        String text = "Данные для сжатия";

        // Сжатие
        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
        try (DeflaterOutputStream dos = new DeflaterOutputStream(byteStream)) {
            dos.write(text.getBytes());
        }
        byte[] compressedData = byteStream.toByteArray();

        // Разжатие
        ByteArrayInputStream inputStream = new ByteArrayInputStream(compressedData);
        try (InflaterInputStream iis = new InflaterInputStream(inputStream);
             ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
            byte[] buffer = new byte[1024];
            int length;
            while ((length = iis.read(buffer)) > 0) {
                outputStream.write(buffer, 0, length);
            }
            System.out.println("Разжатые данные: " + new String(outputStream.toByteArray()));
        }
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Чем docker отличается от виртуальной машины? - Контейнеры Docker работают на одном ядре ОС, изолируя приложения на уровне процессов; - Виртуальные машины включают полную ОС и гипервизор, что делает их тяжелее и медленнее по сравнению с контейнерами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что знаешь про поверхностное копирование? Поверхностное копирование (Shallow Copy) – это процесс создания нового объекта, который содержит ссылки на те же вложенные объекты, что и оригинал. 🟠Как сделать поверхностное копирование в Java? Способ 1: Метод clone() (реализация Cloneable)
class Person implements Cloneable {
    String name;
    
    public Person(String name) {
        this.name = name;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone(); // Поверхностное копирование
    }
}

public class Main {
    public static void main(String[] args) throws CloneNotSupportedException {
        Person original = new Person("Иван");
        Person copy = (Person) original.clone();

        System.out.println(copy.name); // Иван
    }
}
🟠Проблема с вложенными объектами (общие ссылки) Если объект содержит вложенные объекты, они не копируются, а передаются по ссылке.
class Address {
    String city;
    public Address(String city) { this.city = city; }
}

class User implements Cloneable {
    String name;
    Address address;

    public User(String name, Address address) {
        this.name = name;
        this.address = address;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone(); // Поверхностное копирование
    }
}

public class Main {
    public static void main(String[] args) throws CloneNotSupportedException {
        Address address = new Address("Москва");
        User original = new User("Иван", address);
        User copy = (User) original.clone();

        copy.address.city = "Санкт-Петербург"; // Меняем адрес у копии

        System.out.println(original.address.city); // Санкт-Петербург (изменилось и у оригинала!)
    }
}
🟠Как сделать глубокую копию? (Deep Copy) Решение: Создать новый вложенный объект в clone()
@Override
protected Object clone() throws CloneNotSupportedException {
    User clonedUser = (User) super.clone();
    clonedUser.address = new Address(this.address.city); // Копируем вложенный объект
    return clonedUser;
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое Java? Java — это: - Объектно-ориентированный язык программирования; - Работает по принципу: «Написал один раз — работает везде» благодаря JVM; - Поддерживает: платформенную независимость, автоматическое управление памятью, обширную стандартную библиотеку, мультипоточность и безопасный синтаксис. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но они применяются на разных этапах выполнения запроса и имеют разные цели. 🚩WHERE Применяется до агрегации данных. Это значит, что фильтрация происходит непосредственно на строках исходной таблицы или результата объединения таблиц, до того как произойдет любая операция группировки (GROUP BY) или агрегирования (SUM, COUNT, AVG и т.д.). Используется для фильтрации строк, которые будут включены в результаты группировки или в финальный набор данных, если группировка не используется. Не может использоваться для фильтрации агрегированных значений.
SELECT employee_id, SUM(salary)
FROM salaries
WHERE salary > 1000
GROUP BY employee_id;
🚩HAVING Применяется после агрегации данных. Это означает, что фильтрация происходит уже на агрегированных результатах, полученных после применения GROUP BY и агрегатных функций. Используется для фильтрации групп в результате запроса с группировкой. Может использоваться только с GROUP BY или для фильтрации результатов, полученных с помощью агрегатных функций.
SELECT employee_id, SUM(salary)
FROM salaries
GROUP BY employee_id
HAVING SUM(salary) > 10000;
Ставь 👍 и забирай 📚 Базу знаний

Порядок в задачах, чатах, и сроках — это Битрикс24 Командная работа станет прозрачной и управляемой. Бесплатно для любого числа сотрудников. Зарегистрироваться #реклама 16+ task-24.bitrix24.ru О рекламодателе

🤔 Что такое тернарный оператор выбора? Тернарный оператор — это короткая форма условного выражения. Формат: условие ? значение_если_true : значение_если_false Он позволяет выбирать одно из двух значений в зависимости от логического условия. Полезен, когда нужно вернуть результат в одну строку вместо использования if-else. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как ты можешь описать абстракцию? Это принцип объектно-ориентированного программирования (ООП), который скрывает детали реализации объекта и показывает только его наиболее важные характеристики. Она позволяет сосредоточиться на сущности объекта, игнорируя его внутреннюю сложность. 🚩Абстракция В Java абстракция достигается через: Абстрактные классы Интерфейсы 🟠Абстрактные классы Абстрактный класс — это класс, который не может быть создан напрямую, но может содержать: Абстрактные методы (без реализации, только сигнатуры); Обычные методы (с реализацией). Используется, если вы хотите описать общее поведение для группы классов, но часть поведения оставить на усмотрение конкретных подклассов.
abstract class Animal {
    // Абстрактный метод — реализуется в подклассах
    abstract void makeSound();

    // Обычный метод
    void eat() {
        System.out.println("This animal eats food.");
    }
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("Woof!");
    }
}

class Cat extends Animal {
    @Override
    void makeSound() {
        System.out.println("Meow!");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog();
        dog.makeSound(); // Woof!
        dog.eat();       // This animal eats food.

        Animal cat = new Cat();
        cat.makeSound(); // Meow!
    }
}
🟠Интерфейсы Интерфейс — это чистый контракт, который определяет набор методов, которые класс должен реализовать. В отличие от абстрактного класса: Интерфейс не может содержать полей (кроме static final). Класс может реализовать несколько интерфейсов (множественное наследование).
interface Vehicle {
    void start(); // метод без реализации
    void stop();
}

class Car implements Vehicle {
    @Override
    public void start() {
        System.out.println("Car is starting.");
    }

    @Override
    public void stop() {
        System.out.println("Car is stopping.");
    }
}

class Bike implements Vehicle {
    @Override
    public void start() {
        System.out.println("Bike is starting.");
    }

    @Override
    public void stop() {
        System.out.println("Bike is stopping.");
    }
}

public class Main {
    public static void main(String[] args) {
        Vehicle car = new Car();
        car.start(); // Car is starting.
        car.stop();  // Car is stopping.

        Vehicle bike = new Bike();
        bike.start(); // Bike is starting.
        bike.stop();  // Bike is stopping.
    }
}
🚩Почему важна абстракция? 🟠Скрытие сложностей Программистам не нужно знать все детали реализации объекта. Они работают только с его интерфейсом. 🟠Упрощение понимания Код становится понятным и модульным, так как мы сосредоточиваемся на важной логике. 🟠Повторное использование Абстракция позволяет использовать один и тот же код для разных объектов. 🟠Гибкость и поддержка Если нужно изменить реализацию, это не затронет остальную часть программы (если она работает через абстрактный контракт). Ставь 👍 и забирай 📚 Базу знаний

🤔 Как работает метод close() при работе с пулом соединения к БД? Когда ты вызываешь close() у соединения из пула, оно не закрывает физическое соединение с БД, а возвращает его обратно в пул. Это позволяет эффективно повторно использовать соединения, не создавая каждый раз новые подключения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Обеспечит ли Stream API RandomAcess? Нет, Stream API не поддерживает RandomAccess, потому что он работает с потоком данных, а не с индексированными структурами. 🚩Почему Stream API не поддерживает `RandomAccess`? 🟠Stream – это поток данных который не обязательно хранится в памяти в виде структуры, поддерживающей случайный доступ. 🟠Нет индексов в отличие от List, Stream не позволяет получить элемент по индексу (get(index) отсутствует). 🟠Обход последовательный элементы проходятся один за другим, что делает случайный доступ невозможным. ListRandomAccess)
List<Integer> list = new ArrayList<>(List.of(1, 2, 3, 4, 5));
System.out.println(list.get(2)); // Быстрое получение элемента по индексу
Stream (без RandomAccess)
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
stream.skip(2).findFirst().ifPresent(System.out::println); // Ищем 3-й элемент
Ставь 👍 и забирай 📚 Базу знаний

Тариф, с которым хватит на всё 50 ГБ и безлимитные минуты за 390 ₽ в месяц, если перенесете номер в Т-Мобайл до 31 августа Узнать больше #реклама tbank.ru О рекламодателе

🤔 Что такое SLA? SLA (Service Level Agreement) — это соглашение об уровне сервиса между поставщиком и клиентом. Описывает: - доступность (например, 99.9%); - время отклика; - действия в случае сбоя; - метрики качества сервиса. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В чём различие между LeftJoin , RightJoin и InnerJoin? LEFT JOIN, RIGHT JOIN и INNER JOIN являются операциями соединения таблиц, каждая из которых используется для объединения строк из двух или более таблиц на основе связанных столбцов между ними. Различие между этими типами соединений заключается в том, какие строки выбираются для включения в результаты запроса. 🚩INNER JOIN Возвращает только те строки, которые имеют соответствующие значения в обеих таблицах. Если совпадение не найдено, строки не включаются в результаты. Это наиболее часто используемый тип соединения, так как он обеспечивает строгое соответствие между таблицами. 🚩LEFT JOIN (или LEFT OUTER JOIN) Возвращает все строки из левой таблицы (ТаблицаA), а также соответствующие строки из правой таблицы (ТаблицаB). Если совпадение в правой таблице не найдено, результат будет содержать NULL на месте столбцов правой таблицы. 🚩RIGHT JOIN (или RIGHT OUTER JOIN) Работает аналогично LEFT JOIN, но возвращает все строки из правой таблицы (ТаблицаB), а также соответствующие строки из левой таблицы (ТаблицаA). Если совпадение в левой таблице не найдено, результат будет содержать NULL на месте столбцов левой таблицы. INNER JOIN используется для получения строк с совпадениями в обеих таблицах. LEFT JOIN возвращает все строки из левой таблицы и соответствующие строки из правой таблицы; если соответствий нет, вместо столбцов правой таблицы будут NULL. RIGHT JOIN возвращает все строки из правой таблицы и соответствующие строки из левой таблицы; если соответствий нет, вместо столбцов левой таблицы будут NULL. Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Приведи примеры порождающих шаблонов проектирования. - Singleton — единственный экземпляр класса; - Factory Method — создание объектов через фабричный метод; - Abstract Factory — создание семейства связанных объектов; - Builder — пошаговое создание сложного объекта; - Prototype — создание копий существующих объектов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Что такое heap, stack? В контексте Java, Heap (куча) и Stack (стек) являются областями памяти, используемыми JVM для управления памятью, необходимой для выполнения программы. Каждая из этих областей имеет свои характеристики и используется для разных целей. 🚩Heap (Куча) Heap — это область памяти, выделенная для динамического распределения памяти объектов и массивов. Все объекты, созданные с использованием оператора new, размещаются в куче. 🟠Особенности Куча разделена на поколения: молодое поколение (Young Generation) и старое поколение (Old Generation). Молодое поколение включает в себя области Eden Space и Survivor Spaces (S0 и S1). Старое поколение хранит долгоживущие объекты. 🟠Управление памятью Куча управляется сборщиком мусора (Garbage Collector), который автоматически освобождает память, занятую объектами, которые больше не используются. 🟠Использование Куча используется для хранения объектов, массивов и классов, информация о которых сохраняется на протяжении всего времени их жизни.
public class Example {
    public static void main(String[] args) {
        Example obj = new Example(); // obj создается в куче
    }
}
🚩Stack (Стек) Стек — это область памяти, используемая для управления вызовами методов и хранения локальных переменных, параметров методов и информации о возвратах. 🟠Особенности Каждый поток имеет свой собственный стек. Стек хранит кадры (frames) для каждого вызова метода. Каждый кадр содержит локальные переменные метода и информацию о вызовах. 🟠Управление памятью Память в стеке автоматически управляется при вызове методов и выходе из них. Когда метод вызывается, создается новый кадр в стеке; когда метод завершает выполнение, его кадр удаляется из стека. 🟠Использование Стек используется для хранения примитивных типов данных и ссылок на объекты, которые находятся в куче. Локальные переменные методов и параметры методов хранятся в стеке.
public class Example {
    public static void main(String[] args) {
        int localVar = 10; // localVar хранится в стеке
        Example obj = new Example(); // Ссылка на obj хранится в стеке, а сам объект — в куче
        obj.method();
    }

    public void method() {
        int anotherVar = 20; // anotherVar хранится в стеке
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Для чего в стримах предназначены методы flatMap(), flatMapToInt(), flatMapToDouble(), flatMapToLong()? Используются для распаковки вложенных стримов: - flatMap() превращает каждый элемент в стрим, затем объединяет их; - позволяет работать с вложенными коллекциями (например, список списков) как с единым потоком. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких. Кинопоиск и Яндекс Кни
Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попробуйте бесплатно❤️ Попробовать #реклама 18+ music.yandex.ru О рекламодателе Реклама на Яндексе

Java | Вопросы собесов - Estadísticas y analítica del canal de Telegram @easy_java_ru