Java | Вопросы собесов
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+icUwivvbGOkwNWRi Задачи t.me/+8eqUTboisnkyZjQy Вакансии t.me/+4pspF5nDjgM4MjQy
Show more📈 Analytical overview of Telegram channel Java | Вопросы собесов
Channel Java | Вопросы собесов (@easy_java_ru) in the Russian language segment is an active participant. Currently, the community unites 11 449 subscribers, ranking 10 899 in the Technologies & Applications category and 57 490 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 11 449 subscribers.
According to the latest data from 05 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 20 over the last 30 days and by 6 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 7.92%. Within the first 24 hours after publication, content typically collects 7.61% reactions from the total number of subscribers.
- Post reach: On average, each post receives 907 views. Within the first day, a publication typically gains 871 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
- Thematic interests: Content is focused on key topics such as ставь, void, string, строка, static.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp
Тесты t.me/+icUwivvbGOkwNWRi
Задачи t.me/+8eqUTboisnkyZjQy
Вакансии t.me/+4pspF5nDjgM4MjQy”
Thanks to the high frequency of updates (latest data received on 07 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
class Car {
void drive() {
System.out.println("Машина едет...");
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car(); // Создание обычного объекта вручную
car.drive();
}
}
Bean в Spring
import org.springframework.stereotype.Component;
@Component // Аннотация говорит Spring, что этот класс – Bean
class Car {
void drive() {
System.out.println("Spring-машина едет...");
}
}
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
Car car = context.getBean(Car.class); // Получаем объект из Spring-контейнера
car.drive();
}
}
Ставь 👍 и забирай 📚 Базу знанийtry {
connection.setAutoCommit(false); // Отключаем автокоммит
withdraw(accountA, 1000);
deposit(accountB, 1000);
connection.commit(); // Подтверждаем транзакцию
} catch (Exception e) {
connection.rollback(); // Откат в случае ошибки
}
🚩Согласованность (Consistency) — "данные остаются корректными"
После транзакции данные должны оставаться в логически правильном состоянии.
🚩Изолированность (Isolation) — "отдельно от других транзакций"
Одна транзакция не должна мешать выполнению другой.
Два клиента одновременно бронируют одно и то же место в самолёте.
Система должна обработать их по очереди, а не одновременно.
В Java изолированность регулируется уровнями транзакций (TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ и т. д.), чтобы избежать проблем, таких как "грязное чтение" или "фантомные записи".
connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
🚩Долговечность (Durability) — "данные не теряются"
После успешного завершения транзакции данные не должны теряться даже при сбоях (например, отключении электричества).
Ставь 👍 и забирай 📚 Базу знаний@RequestMapping – универсальная аннотация, поддерживающая все HTTP-методы (GET, POST, PUT, DELETE и т. д.).
@PutMapping – специализированная аннотация для PUT-запросов.
🚩`@RequestMapping` – универсальная аннотация
Можно использовать для любого HTTP-метода (GET, POST, PUT, DELETE). Необходимо явно указывать method = RequestMethod.PUT, если нужен PUT.
@RestController
@RequestMapping("/users")
public class UserController {
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public String updateUser(@PathVariable Long id, @RequestBody String userData) {
return "Пользователь с ID " + id + " обновлён!";
}
}
🚩`@PutMapping` – упрощённый способ для `PUT`-запросов
Это специализированная аннотация, эквивалентная @RequestMapping(method = RequestMethod.PUT).
@RestController
@RequestMapping("/users")
public class UserController {
@PutMapping("/{id}")
public String updateUser(@PathVariable Long id, @RequestBody String userData) {
return "Пользователь с ID " + id + " обновлён!";
}
}
Ставь 👍 и забирай 📚 Базу знаний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;
}
Ставь 👍 и забирай 📚 Базу знанийint sum(int a, int b) {
return a + b;
}
int main() {
int result = sum(5, 3);
printf("%d", result);
return 0;
}
🚩Объектно-ориентированное программирование (ООП)
Мир представляется в виде объектов, у которых есть состояние (поля) и поведение (методы).
Используются принципы: инкапсуляция, наследование, полиморфизм.
Пример: Java, C++, Python.
class Car {
private String model;
public Car(String model) {
this.model = model;
}
public void drive() {
System.out.println(model + " едет!");
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car("Tesla");
car.drive(); // Tesla едет!
}
}
🚩Функциональное программирование (FP)
Использование чистых функций (без изменения состояния).
Избегание побочных эффектов и мутабельности.
Пример: Haskell, Scala, Kotlin, Java (Stream API).
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = List.of(1, 2, 3, 4, 5);
numbers.stream()
.map(n -> n * 2) // Умножаем каждый элемент на 2
.forEach(System.out::println); // Вывод результата
}
}
Ставь 👍 и забирай 📚 Базу знаний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 метод
Ставь 👍 и забирай 📚 Базу знаний
Available now! Telegram Research 2025 — the year's key insights 
