Java | Вопросы собесов
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+icUwivvbGOkwNWRi Задачи t.me/+8eqUTboisnkyZjQy Вакансии t.me/+4pspF5nDjgM4MjQy
Показати більше📈 Аналітичний огляд Telegram-каналу Java | Вопросы собесов
Канал Java | Вопросы собесов (@easy_java_ru) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 11 453 підписників, посідаючи 10 900 місце в категорії Технології та додатки та 57 494 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 11 453 підписників.
За останніми даними від 09 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на 13, а за останні 24 години на -1, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 10.15%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.30% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 1 162 переглядів. Протягом першої доби публікація в середньому набирає 836 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 6.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як ставь, void, string, строка, static.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp
Тесты t.me/+icUwivvbGOkwNWRi
Задачи t.me/+8eqUTboisnkyZjQy
Вакансии t.me/+4pspF5nDjgM4MjQy”
Завдяки високій частоті оновлень (останні дані отримано 10 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
equals(), он должен быть транзитивным
class Person {
String name;
Person(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return name.equals(person.name);
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person("Иван");
Person p2 = new Person("Иван");
Person p3 = new Person("Иван");
System.out.println(p1.equals(p2)); // true
System.out.println(p2.equals(p3)); // true
System.out.println(p1.equals(p3)); // true (транзитивность)
}
}
🚩Транзитивность в сравнении (`compareTo` из `Comparable`)
Метод compareTo() должен соблюдать транзитивность:
class Student implements Comparable<Student> {
int age;
Student(int age) {
this.age = age;
}
@Override
public int compareTo(Student other) {
return Integer.compare(this.age, other.age);
}
}
public class Main {
public static void main(String[] args) {
Student s1 = new Student(25);
Student s2 = new Student(20);
Student s3 = new Student(15);
System.out.println(s1.compareTo(s2)); // > 0 (s1 > s2)
System.out.println(s2.compareTo(s3)); // > 0 (s2 > s3)
System.out.println(s1.compareTo(s3)); // > 0 (s1 > s3) (транзитивность)
}
}
🚩Транзитивность в наследовании (`extends` / `implements`)
В Java классы могут наследоваться транзитивно
class Animal {}
class Mammal extends Animal {}
class Dog extends Mammal {}
Ставь 👍 и забирай 📚 Базу знаний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); // Теперь это точно отдельный объект
Ставь 👍 и забирай 📚 Базу знанийFileFilter — это интерфейс в пакете java.io, используемый для фильтрации файлов в каталогах. Он применяется в методе listFiles(FileFilter filter) класса File и позволяет выбрать только те файлы, которые соответствуют заданным критериям.
🚩Как работает `FileFilter`?
Этот интерфейс содержит всего один метод:
boolean accept(File pathname);
🚩Пример использования `FileFilter`
Допустим, мы хотим отфильтровать все файлы .txt в заданной папке:
import java.io.File;
import java.io.FileFilter;
public class TxtFileFilterExample {
public static void main(String[] args) {
File directory = new File("C:/example"); // Укажите свою папку
// Используем FileFilter для выбора файлов с расширением .txt
FileFilter txtFilter = new FileFilter() {
@Override
public boolean accept(File file) {
return file.isFile() && file.getName().endsWith(".txt");
}
};
// Получаем список файлов, соответствующих фильтру
File[] txtFiles = directory.listFiles(txtFilter);
// Выводим найденные файлы
if (txtFiles != null) {
for (File file : txtFiles) {
System.out.println("Файл: " + file.getName());
}
}
}
}
Выходные данные (если в папке C:/example есть файлы .txt)
Файл: notes.txt Файл: tasks.txt🚩Lambda-версия (Java 8+) Вместо анонимного класса можно использовать лямбда-выражение:
FileFilter txtFilter = file -> file.isFile() && file.getName().endsWith(".txt");
🚩Разница между `FileFilter` и `FilenameFilter`
FileFilter принимает объект File, позволяя фильтровать как файлы, так и каталоги.
FilenameFilter принимает только имя файла (без пути).
import java.io.File;
import java.io.FilenameFilter;
public class TxtFilenameFilterExample {
public static void main(String[] args) {
File directory = new File("C:/example");
// Фильтр для файлов .txt
FilenameFilter txtFilter = (dir, name) -> name.endsWith(".txt");
String[] txtFiles = directory.list(txtFilter);
if (txtFiles != null) {
for (String file : txtFiles) {
System.out.println("Файл: " + file);
}
}
}
}
Ставь 👍 и забирай 📚 Базу знанийweb.xml в Java).
Хранение данных (например, в файлах настроек, документах).
Веб-сервисы (SOAP использует XML для передачи сообщений).
🚩Как устроен XML?
XML-документ состоит из элементов (тегов), которые образуют древовидную структуру. Пример простого XML:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>Иван</name>
<age>30</age>
<city>Москва</city>
</person>
🚩Как XML используется в Java?
В Java XML часто используется для работы с конфигурациями и веб-сервисами. Популярные библиотеки для работы с XML:
DOM (Document Object Model) — загружает весь XML-файл в память, создавая дерево элементов.
SAX (Simple API for XML) — обрабатывает XML последовательно, без загрузки в память.
JAXB (Java Architecture for XML Binding) — позволяет преобразовывать Java-объекты в XML и обратно.
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Marshaller;
import java.io.StringWriter;
@XmlRootElement
class Person {
private String name;
private int age;
public Person() {} // Пустой конструктор нужен для JAXB
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@XmlElement
public String getName() { return name; }
@XmlElement
public int getAge() { return age; }
}
public class Main {
public static void main(String[] args) throws JAXBException {
Person person = new Person("Иван", 30);
JAXBContext context = JAXBContext.newInstance(Person.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter writer = new StringWriter();
marshaller.marshal(person, writer);
System.out.println(writer.toString());
}
}
Вывод
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
<name>Иван</name>
<age>30</age>
</person>
Ставь 👍 и забирай 📚 Базу знанийint[] numbers = new int[5]; // Размер 5, изменить нельзя!
🟠Что делать, если нужен динамический массив?
В Java есть динамические структуры данных, например ArrayList.
import java.util.ArrayList;
import java.util.List;
public class DynamicArrayExample {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list); // [1, 2, 3]
}
}
Ставь 👍 и забирай 📚 Базу знаний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 (очередь пуста)
Ставь 👍 и забирай 📚 Базу знанийclass Car {
private Engine engine;
public Car() {
this.engine = new Engine(); // Прямое создание зависимости ❌
}
}
С IoC (зависимость передаётся извне)
class Car {
private final Engine engine;
public Car(Engine engine) { // Зависимость передаётся через конструктор
this.engine = engine;
}
}
🟠Как реализуется IoC?
IoC достигается через паттерны проектирования, такие как:
Dependency Injection (DI) – передача зависимостей извне (через конструктор, поле или метод).
Factory Method – создание объектов через фабрики.
Event-driven подход – реакция на события вместо явного вызова методов.
🟠IoC в Spring
Spring реализует IoC через контейнер IoC, который управляет созданием объектов (бинов) и их зависимостями.
@Component
class Engine {}
@Component
class Car {
private final Engine engine;
@Autowired
public Car(Engine engine) { // Spring автоматически передаст нужный объект
this.engine = engine;
}
}
Ставь 👍 и забирай 📚 Базу знаний
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
