TGViewer
Channel Public Channel
Библиотека собеса по Java | вопросы с собеседований

Библиотека собеса по Java | вопросы с собеседований

@java_interview_lib

Вопросы с собеседований по Java и ответы на них.

По рекламе: @tproger_sales_bot

Учиться у нас: clc.to/3wECtA

Для обратной связи: @proglibrary_feeedback_bot
Subscribers
6.42K
Photos
438
Videos
12
Links
733

Showing posts older than #734 · Back to latest

Older Posts 20 shown
Post #733 6.07K
❓ Что такое MVP?

MVP (Minimum Viable Product) — это минимально жизнеспособный продукт, представляющий собой начальную версию продукта, которая включает только ключевые функции, необходимые для проверки гипотезы или удовлетворения базовых потребностей пользователей.

Ключевые аспекты MVP:

— MVP содержит только те функции, которые являются критически важными для решения основной проблемы пользователя. Остальные функции откладываются на более поздние этапы.

— MVP создаётся для тестирования рыночного спроса или реакции пользователей на продукт с минимальными затратами времени и ресурсов.

— После выпуска MVP собираются отзывы от пользователей, чтобы понять, в правильном ли направлении развивается продукт, и внести изменения.

Важно: MVP — это не просто "сырой" продукт, он должен решать основную задачу, при этом быть полезным и функциональным.
  • 👍 11
  • 🔥 4
  • 🎉 3
  • 😁 1
Post #732 2.4K
❓ Что такое MVC?

MVC (Model-View-Controller) — это архитектурный шаблон, который разделяет приложение на три компонента:

1️⃣ Model (Модель):

- Отвечает за бизнес-логику и данные.
- Содержит состояние приложения и методы для его обработки.
- Не знает о представлении (View) и контроллере (Controller).

2️⃣ View (Представление):

- Отображает данные пользователю.
- Реализует интерфейс взаимодействия, но не содержит бизнес-логики.
- Получает данные только из модели.

3️⃣ Controller (Контроллер):

- Обрабатывает пользовательские действия и запросы.
- Вызывает методы модели для изменения состояния.
- Обновляет представление на основе изменений в модели.

MVC помогает разделить ответственность, упростить поддержку кода и облегчить тестирование.
  • 🔥 15
  • 🎉 5
  • 👍 3
  • ❤ 1
Post #731 2.26K
❓ Что такое сигнатура метода?

Сигнатура метода — это его уникальная идентификация в пределах класса. Она включает:

▪️ Имя метода
▪️ Типы и порядок параметров (но не их названия)

Важно: возвращаемый тип и модификаторы доступа не входят в сигнатуру.
  • 👍 19
  • 🎉 3
  • 🔥 2
  • ❤ 1
  • 👏 1
Post #730 2.31K
🎄 Начни 2025-й с апгрейдом навыков,
которые откроют двери в мир IT!

Ты можешь собрать свой персональный план обучения с помощью нашего новогоднего конструктора. Это шанс не просто начать год с полезных знаний, но и сделать инвестицию в своё будущее, которая окупится многократно.

🔗 Собери свой план и начни путь в IT

Почему это выгодно?

📚 Несколько программ по цене одной — максимальная эффективность: учишься сразу тому, что действительно нужно.

💾 Бессрочный доступ — все материалы всегда под рукой, чтобы учиться в своём темпе.

💸 Знания, которые окупятся — навыки, востребованные в любой точке мира.
Какие навыки ты можешь прокачать?

💡 Математика для Data Science + Алгоритмы и структуры данных
— Подготовка к собеседованиям в FAANG и поступлению в ШАД. Решай сложные задачи, работай с данными и моделями на профессиональном уровне.

💡 Алгоритмы и структуры данных + ML
— Улучшай своё алгоритмическое мышление и изучай базовые методы машинного обучения, чтобы создавать интеллектуальные приложения.

💡 Frontend Basic + Базовые модели ML
— Построй свою первую веб-страницу и погрузись в мир ML: от нейросетей до ML-бустинга.

💡 Архитектуры и шаблоны проектирования + Математика для Data Science
— Развивай аналитическое мышление и учись проектировать устойчивые системы.

💡 Алгоритмы и структуры данных + Frontend Basic
— Получи полный набор навыков: от оптимизации алгоритмов до создания современных веб-приложений.

Не упусти шанс сделать шаг в будущее! Новый год — это время обновлений, и твоя карьера может стать одним из них.

🔗 Составь свой IT-маршрут сейчас или выбери курс по новогодней скидке
  • 👍 1
Post #729 2.01K
❓ В чем разница между BeanFactory и ApplicationContext в Spring?

BeanFactory и ApplicationContext — это контейнеры Spring для управления бинами, но их возможности различаются:

🔹 Основная разница:

BeanFactory предоставляет базовую функциональность для управления бинами (инициализация, внедрение зависимостей, жизненный цикл).
ApplicationContext расширяет BeanFactory, добавляя больше возможностей, таких как обработка событий, интеграция с AOP, и интернационализация.

🔹 Ленивая загрузка бинов:


BeanFactory загружает бины лениво — только при их запросе.
ApplicationContext загружает все бины сразу при старте приложения (если они не настроены как ленивые).

🔹 Дополнительные возможности ApplicationContext:

Обработка событий (ApplicationEvent и ApplicationListener).
Поддержка аннотаций, таких как @PostConstruct и @PreDestroy.
Упрощенная интеграция с Environment для работы с настройками приложения.

🔹 Использование:

BeanFactory обычно используется для легковесных приложений или если нужна только базовая функциональность.
ApplicationContext — выбор для большинства реальных приложений благодаря богатому набору функций.
  • 👍 17
  • 🔥 5
  • 🎉 2
Post #728 1.91K
❓ Можно ли переопределить метод toString() для Enum?

Да, можно переопределить так же, как и в любом другом классе. По умолчанию toString() для Enum возвращает имя перечисления (то, что задано при объявлении). Однако, если вам нужно вернуть другое значение, вы можете переопределить этот метод.
  • 👍 11
  • 🔥 4
  • 🎉 2
Post #727 2.23K
  • 🔥 7
  • 👍 2
  • 🎉 2
Post #726 5.71K
ℹ️ Что такое Dependency Injection?

Dependency Injection (внедрение зависимостей) — это один из основных паттернов проектирования в программировании, который позволяет объектам получать свои зависимости извне, вместо того чтобы создавать их внутри себя.

DI способствует:

— Слабой связанности между компонентами.
— Легкости тестирования за счет использования mock-объектов.
— Повторному использованию кода.

Основные способы внедрения зависимостей:

🔹 Constructor Injection
Зависимости передаются через конструктор.
public class Service {
private final Repository repository;

public Service(Repository repository) {
this.repository = repository;
}
}


🔹Setter Injection
Зависимости передаются через сеттеры.
public class Service {
private Repository repository;

public void setRepository(Repository repository) {
this.repository = repository;
}
}


🔹 Field Injection
Зависимости внедряются напрямую в поля класса (обычно с помощью фреймворков, например Spring).
@Component
public class Service {
@Autowired
private Repository repository;
}
  • 👍 13
  • 🔥 4
  • 👏 1
Post #725 2.2K
🎄 Что такое JDBC?

JDBC (Java Database Connectivity) — это стандартный API для взаимодействия с реляционными базами данных. Он предоставляет набор интерфейсов и классов для выполнения следующих задач:

1️⃣ Подключение к базе данных с помощью драйверов, которые обеспечивают взаимодействие с конкретной СУБД.
2️⃣ Выполнение SQL-запросов, таких как SELECT, INSERT, UPDATE, DELETE.
3️⃣ Получение и обработка результатов, включая чтение данных из ResultSet.
4️⃣ Обработка транзакций, включая их коммит или откат.
5️⃣ Управление ресурсами, например, закрытие соединений, чтобы предотвратить утечки памяти.
  • 👍 10
  • 🔥 6
  • ❤ 5
Post #724 2.19K
🎄 Чем отличается абстрактный класс от интерфейса?

Абстрактные классы и интерфейсы используются для обеспечения полиморфизма, но у них разные сценарии применения:

- Наследование: Абстрактный класс поддерживает единичное наследование, интерфейс — множественное.
- Реализация: Абстрактный класс может содержать поля и методы с реализацией. В то время как интерфейс (до Java 8) не мог иметь методы, после Java 8 в интерфейсах появились default методы. Поля в интерфейсах могут быть только public static final.
- Когда выбирать: Абстрактный класс — для объектов с общим поведением, интерфейсы — для описания возможностей или контрактов.


Абстрактные классы — это про кто я такой, интерфейсы — про что я могу делать.
  • 👍 26
  • 🔥 6
  • 👏 2
  • 🎉 1
Post #723 2.01K
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
  • ❤ 2
  • 👍 2
Post #722 2.07K
🎄 Как работает String.intern()

Метод String.intern() возвращает строку из пула строк (String Pool), если такая строка уже существует, либо добавляет строку в пул, если её там ещё нет. Это может быть полезно для оптимизации памяти, особенно при работе с большим количеством дублирующихся строк.

🔍 Как это работает:

String Pool — это специальная область памяти в JVM, где хранятся уникальные строковые литералы. Когда мы вызываем intern(), JVM ищет строку в пуле:

Если строка найдена, возвращается ссылка на неё.
Если строка не найдена, она добавляется в пул, и возвращается новая ссылка.

🧨 Опасности использования:


— Перегрузка пула строк:
Если бездумно вызывать intern() на огромном количестве уникальных строк, можно исчерпать доступную память.

— Скрытые проблемы многопоточности:
Если несколько потоков одновременно вызывают intern() на строке, это может привести к задержкам или даже к дедлокам в JVM.
  • 👍 12
  • 🔥 1
  • 🤔 1
  • 🎉 1
Post #721 1.97K
💬 Обратная связь

🎄 Всех с наступающими праздниками.
Планируете ли Вы готовиться к собеседованиям на новогодних праздниках?

👍🏼 - Конечно, выкладывайте вопросы как раньше
🌚 - Буду отдыхать и веселиться. Выложите что-то ещё

Поделитесь в комментариях, что на новогодние было бы интересно почитать, помимо постов по тематике канала?
  • 👍 27
  • 🌚 8
  • 🔥 2
Post #720 1.98K
🖥 Java — топ язык программирования

Proglib рассказывает про любимый язык програмирования в формате рилса
  • 👍 2
  • 🌚 1
Post #719 1.95K
❓ Что такое JVM?

JVM (Java Virtual Machine) — это виртуальная машина, которая выполняет Java-программы. Она предоставляет платформо-независимую среду для работы Java-кода, абстрагируя аппаратные и операционные особенности.

▪️ Как работает JVM?

- Компиляция: Исходный код на Java компилируется в байт-код (.class), который понятен JVM.
- Загрузка: Класс-загрузчики (Class Loaders) загружают байт-код в память.
- Верификация: Верификатор проверяет байт-код на корректность и безопасность выполнения.
- Исполнение: JVM интерпретирует байт-код или передаёт его JIT-компилятору для преобразования в машинный код, что улучшает производительность.

▪️ Ключевые особенности JVM:


- Garbage Collection: Автоматическое управление памятью для предотвращения утечек.
- Cross-Platform: "Write once, run anywhere" благодаря унифицированной спецификации JVM.
- Виртуальная среда: Обеспечивает безопасность, изолируя выполнение Java-программ.
  • 👍 10
  • 🔥 3
  • 🤔 3
  • 🎉 1
Post #718 1.94K
🗺 Привычка "срезать углы" при ходьбе – это интуитивное применение алгоритмов?

Так работает жадный алгоритм: вы выбираете наиболее выгодный шаг в каждый момент времени, чтобы минимизировать общий путь. То же самое применяют разработчики, создавая маршруты для такси или доставок.

С нашим курсом «Алгоритмы и структуры данных» вы научитесь решать любые сложные задачи так же эффективно.

🎄Начните свой 2025 со скидкой 35% на все курсы. Это лучшее вложении уходящего года – https://proglib.io/w/014fe6d8
Post #717 1.93K
❓ Что такое JRE?

JRE (Java Runtime Environment) — это компонент платформы Java, который обеспечивает выполнение Java-программ.

▪️ JRE включает:

- JVM (Java Virtual Machine): Отвечает за интерпретацию и выполнение байт-кода.
- Библиотеки и классы: Набор стандартных библиотек (например, java.lang, java.util), которые нужны для работы приложений.
- Файлы и ресурсы: Вспомогательные файлы, такие как конфигурации и системные библиотеки.

JRE используется для запуска уже скомпилированных Java-программ. Это значит, что JRE не включает компилятор и другие инструменты разработки (они есть в JDK).
  • 🔥 12
  • 👍 6
  • ❤ 2
  • 👏 1
  • 🤔 1
Post #716 2.04K
❓ Чем отличаются интерфейсы Comparable и Comparator?

Интерфейсы Comparable и Comparator используются для сортировки объектов, но они различаются в подходе и сценариях использования.

🔹 Comparable определяет естественный порядок объектов. Реализуется самим классом, который нужно сравнивать.

Единственный метод – compareTo(T o):
@Override
public int compareTo(Person other) {
return Integer.compare(this.age, other.age);
}


Удобно, когда у объекта есть однозначный критерий сравнения. Например, сортировка по возрасту

🔹 Comparator позволяет создавать кастомные способы сравнения, не изменяя класс.

Основной метод – compare(T o1, T o2):
Comparator<Person> byName = (p1, p2) -> p1.getName().compareTo(p2.getName());


Используется для различных критериев сравнения, например, сортировка по имени или другим атрибутам.
  • 👍 13
  • 🔥 2
  • 👾 1
Post #715 5.39K
ℹ️ Какие типы ссылок существуют?

Существует 4 типа ссылок, которые определяют, как объект будет обрабатываться сборщиком мусора (Garbage Collector).

1️⃣ Strong Reference

Это ссылки, которые используются по умолчанию.
String strongRef = new String("Strong Reference");


Объект, на который указывает сильная ссылка, никогда не будет удален сборщиком мусора, пока существует эта ссылка.
Используйте, когда объект нужен в течение всего времени выполнения.

2️⃣ Soft Reference

Создаются с помощью класса SoftReference. Soft ссылка удерживает объект в памяти, пока в JVM достаточно свободной памяти. Если памяти не хватает, объект будет удален.
SoftReference<String> softRef = new SoftReference<>(new String("Soft Reference"));
String softObj = softRef.get();


Удобны для реализации кэшей. Например, если объект можно восстановить, но не хочется держать его в памяти постоянно.
Сборщик мусора удаляет объекты, на которые ссылаются мягкие ссылки, только в случае нехватки памяти.

3️⃣ Weak Reference

Создаются с помощью класса WeakReference. Объект, на который ссылается слабая ссылка, удаляется сборщиком мусора, как только на него больше нет сильных или мягких ссылок.
WeakReference<String> weakRef = new WeakReference<>(new String("Weak Reference"));
String weakObj = weakRef.get();


Часто используются в структурах данных, таких как WeakHashMap, для предотвращения удержания ненужных объектов.
Удобны для создания ссылок на временные объекты.

4️⃣ Phantom Reference

Создаются с помощью класса PhantomReference. Эти ссылки используются исключительно для отслеживания, когда объект будет удален сборщиком мусора.
PhantomReference<String> phantomRef = new PhantomReference<>(new String("Phantom Reference"), new ReferenceQueue<>());


Метод get() у фантомной ссылки всегда возвращает null.
Объекты, на которые ссылаются фантомные ссылки, добавляются в ReferenceQueue, когда сборщик мусора их удаляет.
  • 🔥 12
  • 👍 7
  • 🎉 2
Post #714 2.07K
❓ Что такое Reflection?

Reflection — это механизм в Java, который позволяет вашему коду исследовать и изменять поведение классов, методов и объектов во время выполнения, даже если их структуры неизвестны заранее.

С помощью Reflection можно:

▪️ Узнавать информацию о классе (методы, поля, конструкторы, модификаторы).
▪️ Вызывать методы и обращаться к полям объекта, даже если они private.
▪️ Создавать новые объекты динамически (без явного указания конструктора).

Пример:


import java.lang.reflect.Method;

public class ReflectionExample {
public static void main(String[] args) throws Exception {
// Класс, который будем исследовать
Class<?> clazz = Class.forName("java.lang.String");

Method[] methods = clazz.getDeclaredMethods();

for (Method method : methods) {
System.out.println("Метод: " + method.getName());
}
}
}


⚠️ Важно:

- Reflection делает код менее безопасным и сложным для понимания.
- Это может снижать производительность программы. Используйте его только при необходимости.
- В современных приложениях, например, с Spring, Reflection часто используется для Dependency Injection или работы с аннотациями.
  • 👍 14
  • 🔥 4
  • 🎉 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →