
⚡️ Telega AI — персональный каталог и пост за 30 секунд
AI-агент подберет каналы и напишет рекламный пост на основе вашего продукта
В каталог

РегистрацияВойтиВойти
Скидка 3,5% на первые три заказа
Получите скидку на первые три заказа!
Зарегистрируйтесь и получите скидку 3,5% на первые рекламные кампании — промокод активен 7 дней.
8.9

Java | Вопросы собесов
5.0
12
Поделиться
В избранное
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 2/48
1 час в топе / 24 часа в ленте
Количество:
keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
8 111.88₽8 111.88₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
🤔 Что такое double checked locking Singleton?
Это паттерн создания Singleton-а, при котором сначала проверяется наличие экземпляра без синхронизации, потом с синхронизацией, чтобы избежать лишней блокировки при каждом доступе.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
1476
19:10
13.08.2025
🤔 Чем полезны неизменяемые (Immutable) объекты в Java?
Неизменяемые (immutable) объекты не могут быть изменены после создания.
Если нужно изменить данные – создаётся новый объект.
🚩Почему неизменяемые объекты полезны?
🟠Потокобезопасность (Thread Safety)
Неизменяемые объекты можно безопасно использовать в многопоточной среде – их не нужно синхронизировать.
String message = "Hello";
String newMessage = message.replace("H", "J");
System.out.println(message); // Hello
System.out.println(newMessage); // Jello{}
🟠Отсутствие неожиданных изменений (безопасность данных)
Если объект неизменяемый, его нельзя случайно изменить.
class BankAccount {
private final String accountNumber;
public BankAccount(String accountNumber) {
this.accountNumber = accountNumber;
}
public String getAccountNumber() {
return accountNumber;
}
}{}
🟠Упрощает отладку и поддержку кода
Изменяемые объекты могут менять состояние в неожиданный момент.
List<String> list = new ArrayList<>();
list.add("Java");
modifyList(list); // Метод может изменить список!
System.out.println(list); // Ожидаем ["Java"], но может быть что угодно!{}
🟠Можно использовать в качестве ключей в `HashMap` и `HashSet`
Хешкод неизменяемого объекта не изменится, а значит, он корректно работает в HashMap
.
Map<String, String> map = new HashMap<>();
map.put("key", "value");
System.out.println(map.get("key")); // Всегда "value", так как String неизменяемый{}
🟠Совместимость с кэшем (например, в Hibernate, Spring)
Неизменяемые объекты можно безопасно кешировать, так как они не меняются.
🚩Как создать неизменяемый класс?
Все поля private final
.
Нет сеттеров.
Если есть массивы или списки – копируем их перед возвратом.
final class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}{}
Ставь 👍 и забирай 📚 Базу знаний1321
12:05
14.08.2025
imageИзображение не доступно для предпросмотра
📺 Уникальная база IT собеседований
456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы.
Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д.
🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!
1252
14:10
14.08.2025
🤔 Какие весовые рамки у integer?
В Java тип
int
занимает 4 байта (32 бита) и имеет диапазон:
-2^{31} \text{ до } 2^{31} - 1
🚩Точный диапазон `int`
🟠Минимальное значение
Integer.MIN_VALUE = -2,147,483,648
🟠Максимальное значение
Integer.MAX_VALUE = 2,147,483,647
public class Main {
public static void main(String[] args) {
System.out.println("Минимальный int: " + Integer.MIN_VALUE);
System.out.println("Максимальный int: " + Integer.MAX_VALUE);
}
}{}
Вывод:
Минимальный int: -2147483648
Максимальный int: 2147483647 {}
🚩Почему именно такой диапазон?
4 байта (32 бита) означают, что у нас 2³² возможных значений.
Поскольку int
знаковый (поддерживает отрицательные и положительные числа), половина значений отводится подотрицательные числа.
Один бит используется для знака (0
– положительное число, 1
– отрицательное).
\text{Диапазон} = - (2^{31}) \text{ до } (2^{31} - 1)
🚩Что будет, если выйти за пределы `int`?
Если сложить два максимальных значения int
, произойдёт переполнение (overflow)
int a = Integer.MAX_VALUE;
int b = 1;
int c = a + b;
System.out.println(c); // Выведет -2147483648 (переполнение!){}
🟠Как работать с числами больше `int`?
Использовать `long` (8 байт, диапазон от -2^63
до 2^63 - 1
):
long bigNumber = 2_147_483_648L; // Обязательно добавлять "L" в конце{}
Использовать BigInteger
(неограниченный размер):
BigInteger bigNum = new BigInteger("999999999999999999999999");{}
Ставь 👍 и забирай 📚 Базу знаний1395
12:05
15.08.2025
🤔 В чем разница между checked и unchecked исключениями?
Checked исключения — это исключения, которые проверяются во время компиляции, и разработчик обязан обработать их с помощью try-catch или указать в сигнатуре метода с помощью throws. Unchecked исключения не проверяются на этапе компиляции и возникают в результате ошибок времени выполнения (например, NullPointerException). Checked исключения происходят из класса Exception, а unchecked — из класса RuntimeException. Checked исключения обычно используются для предсказуемых ошибок, которые можно обработать.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
1384
19:10
14.08.2025
🤔 Можно ли применить bind на стрелочную функцию?
Нет, у стрелочной функции нет собственного this, bind, call, apply не переопределяют контекст, так как this определяется лексически при создании функции.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
1289
19:10
15.08.2025
🤔 Что такое адаптер?
Адаптер (Adapter) – это шаблон проектирования, который используется для приведения интерфейсов несовместимых классов к единому виду. Он выступает посредником между двумя несовместимыми системами.
🚩Пример: Адаптер в Java (Object Adapter)
Допустим, у нас есть старый класс
OldCharger
, который работает с вольтажем 220V, а мы хотим, чтобы он работал с USB (5V).
Старый интерфейс (неподходящий)
class OldCharger {
void charge220V() {
System.out.println("Зарядка 220V...");
}
}{}
Новый интерфейс (нужный)
interface USBCharger {
void charge5V();
}{}
Адаптер, который превращает 220V
в 5V
class ChargerAdapter implements USBCharger {
private OldCharger oldCharger;
public ChargerAdapter(OldCharger oldCharger) {
this.oldCharger = oldCharger;
}
@Override
public void charge5V() {
System.out.println("Преобразуем 220V в 5V...");
oldCharger.charge220V();
}
}{}
Использование адаптера
public class Main {
public static void main(String[] args) {
OldCharger oldCharger = new OldCharger();
USBCharger adapter = new ChargerAdapter(oldCharger);
adapter.charge5V(); // Теперь старая зарядка работает с 5V!
}
}{}
Object Adapter (адаптер-объект) – использует композицию (пример выше).
Class Adapter (адаптер-класс) – использует наследование (extends
).
class ChargerAdapter extends OldCharger implements USBCharger {
@Override
public void charge5V() {
System.out.println("Преобразуем 220V в 5V...");
charge220V();
}
}{}
Ставь 👍 и забирай 📚 Базу знаний1282
12:05
16.08.2025
🤔 В чём проблема конкатенации строк в Java?
Проблема в том, что строки (String) в Java иммутабельны — при каждой конкатенации создаётся новый объект, а старые уходят в сборку мусора. Это приводит к потере производительности при множественных соединениях.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
1216
19:10
16.08.2025
🤔 В чем разница между Spring аннотациями Component, Repository и Service?
Все три аннотации используются в Spring для создания бинов, но у каждой есть своё предназначение.
🚩`@Component` – базовая аннотация для бина
@Component
помечает класс как Spring-бин (компонент).
Является универсальной аннотацией.
Можно применять к любым классам, которые должны управляться Spring-контейнером.
@Component
public class MyComponent {
public void doWork() {
System.out.println("Работа компонента");
}
}{}
🚩`@Service` – для бизнес-логики
@Service
– это специализированный @Component
, используемый для сервисных классов (логика приложения).
Упрощает понимание кода (показывает, что этот класс содержит бизнес-логику).
@Service
public class UserService {
public String getUser() {
return "Пользователь Иван";
}
}{}
🚩`@Repository` – для работы с базой данных
@Repository
– это специализированный @Component
для слоя доступа к данным (DAO, Repository).
Автоматически перехватывает SQL-исключения (PersistenceExceptionTranslationPostProcessor
) и преобразует их в DataAccessException
.
@Repository
public class UserRepository {
public String findUserById(int id) {
return "Пользователь с ID " + id;
}
}{}
Ставь 👍 и забирай 📚 Базу знаний1020
12:05
17.08.2025
🤔 StringBuilder и StringBuffer, в чём различия?
StringBuilder быстрее, но не потокобезопасен, тогда как StringBuffer потокобезопасен за счёт синхронизации, но работает медленнее.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
692
19:10
17.08.2025
close
Спецпредложения
Прогеры

Каналов
20
199K
lock_outline
CPV
lock_outline183 076.74 ₽₽
109 846.06 ₽₽
-40%
С этим каналом часто покупают
Отзывы канала
keyboard_arrow_down
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
5.0
0 отзыва за 6 мес.
m
**cromarketing@****.ru
на сервисе с августа 2023
18.12.202412:17
5
Оперативное размещение
Показать еще
Лучшие в тематике
Новинки в тематике
Статистика канала
Рейтинг
8.9
Оценка отзывов
5.0
Выполнено заявок
30
Подписчики:
11.5K
Просмотры на пост:
lock_outline
ER:
10.3%
Публикаций в день:
0.0
CPV
lock_outlineВыбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий