Java собеседования – Telegram
Java собеседования
697 subscribers
106 photos
224 links
Подготовка к собеседованиям на позицию Java-разработчик

Еще больше на сайте https://frontview-it.ru

Backend собеседования - @frontview_backend
Java работа - @frontview_java_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
filter используется для отбора элементов коллекции, удовлетворяющих определённому условию, возвращая только те элементы, которые соответствуют предикату. map преобразует каждый элемент коллекции в другой объект, применяя к нему заданную функцию, и возвращает новую коллекцию с результатами преобразования.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
🔹REST и SOAP — это два подхода к созданию веб-сервисов. REST основан на архитектурных принципах, использует стандартные HTTP-методы (GET, POST, PUT, DELETE) и работает с данными в форматах JSON, XML или других. SOAP — это протокол, который строго определяет структуру сообщений в XML и требует использования WSDL для описания сервисов.

🔹REST легче в реализации и интеграции, так как он более гибкий и использует стандартные веб-технологии. SOAP, напротив, более строгий и безопасный, поддерживает встроенные механизмы для транзакций и безопасности (WS-Security). Выбор между ними зависит от требований проекта.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
Iterator — это объект, который позволяет последовательно обходить элементы коллекции без необходимости знать её внутреннюю структуру. Он предоставляет методы для проверки наличия следующего элемента (hasNext) и его получения (next), что делает обход коллекции удобным и безопасным.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
➡️ HashSet и TreeSet — это реализации интерфейса Set, но с разными характеристиками.

HashSet хранит элементы в хэш-таблице, обеспечивая вставку и поиск за O(1) в среднем случае. Порядок элементов не гарантируется.


Set<String> hashSet = new HashSet<>();
hashSet.add("apple");
hashSet.add("banana");


TreeSet использует красно-черное дерево для хранения элементов, обеспечивая вставку и поиск за O(log n). Элементы хранятся в отсортированном порядке.


Set<String> treeSet = new TreeSet<>();
treeSet.add("apple");
treeSet.add("banana");


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
Ключевое слово protected обеспечивает доступ к членам класса (полям, методам) внутри того же пакета, а также в классах-наследниках, даже если они находятся в других пакетах. Это позволяет контролировать видимость данных, ограничивая доступ извне, но сохраняя его для наследников.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Стек вызовов — это структура данных, которая отслеживает последовательность вызовов методов или функций. Каждый новый вызов добавляется на вершину стека, а завершение вызова удаляет его из стека.


public void methodA() {
methodB(); // Вызов methodB
}

public void methodB() {
methodC(); // Вызов methodC
}

public void methodC() {
throw new RuntimeException("Error in methodC"); // Исключение
}


При возникновении исключения стек вызовов показывает цепочку методов, которые привели к ошибке. Например, если исключение произошло в methodC, стек будет выглядеть так:


methodC
methodB
methodA


Это помогает определить, где именно возникла ошибка и как программа дошла до этого момента.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Основные цели сборки мусора — освобождение памяти, занятой объектами, которые больше не используются в программе, и предотвращение утечек памяти. Это обеспечивает эффективное управление ресурсами и стабильную работу приложения.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
🪅 Методы default и static в интерфейсах позволяют добавлять реализацию методов непосредственно в интерфейс. Это расширяет функциональность интерфейсов без нарушения обратной совместимости.


interface Example {
void abstractMethod();

default void defaultMethod() {
System.out.println("Default implementation");
}

static void staticMethod() {
System.out.println("Static method in interface");
}
}


Метод default предоставляет реализацию по умолчанию, которую можно переопределить в классах. Метод static позволяет добавлять утилитарные методы, которые вызываются через интерфейс, а не через экземпляр класса. Это упрощает расширение интерфейсов и уменьшает дублирование кода.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Микросервисная архитектура — это подход к разработке приложений, при котором система разбивается на небольшие независимые сервисы, каждый из которых выполняет определённую бизнес-задачу. Сервисы взаимодействуют через API, что позволяет разрабатывать, тестировать и масштабировать их независимо друг от друга.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
▶️Конструкции if-else используются для выполнения кода на основе условий. Основные правила включают:

- Условие в if должно быть булевым выражением.
- Блок else не обязателен и выполняется, если условие в if ложно.
- Можно использовать else if для проверки нескольких условий последовательно.


int x = 10;
if (x > 0) {
// выполняется, если x больше 0
} else if (x < 0) {
// выполняется, если x меньше 0
} else {
// выполняется, если x равно 0
}


- Фигурные скобки {} обязательны, если блок содержит более одной строки кода.
- Для улучшения читаемости рекомендуется избегать вложенных if-else и использовать ранний возврат или тернарные операторы, где это уместно.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Перегрузка конструктора позволяет создавать несколько конструкторов с разными параметрами в одном классе. Это делается путем определения нескольких конструкторов с уникальными сигнатурами, отличающимися количеством или типами параметров.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
🔜 Полиморфизм в Java реализуется через механизм наследования и переопределения методов. Родительский класс или интерфейс может быть использован для ссылки на объект дочернего класса, что позволяет вызывать методы, специфичные для этого дочернего класса.


class Animal {
void sound() {
System.out.println("Animal sound");
}
}

class Dog extends Animal {
@Override
void sound() {
System.out.println("Bark");
}
}

Animal myAnimal = new Dog();
myAnimal.sound(); // Выведет "Bark"


В этом примере метод sound() переопределен в классе Dog. При вызове myAnimal.sound() выполняется версия метода из класса Dog, несмотря на то, что ссылка имеет тип Animal. Это демонстрирует полиморфизм во время выполнения.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Heap (куча) используется для динамического выделения памяти под объекты, время жизни которых управляется сборщиком мусора. Stack (стек) предназначен для хранения локальных переменных и вызовов методов, память освобождается автоматически при завершении метода.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Основные отличия между String, StringBuilder и StringBuffer:

1. String
- Неизменяемый (immutable) класс. Любая операция, изменяющая строку, создает новый объект.
- Подходит для хранения строк, которые не требуют частых изменений.

2. StringBuilder
- Изменяемый (mutable) класс. Операции выполняются на том же объекте, что повышает производительность.
- Не потокобезопасный. Используется в однопоточных приложениях.

3. StringBuffer
- Аналогичен StringBuilder, но потокобезопасный.
- Медленнее StringBuilder из-за синхронизации.

Пример:

String str = "Hello";
str += " World"; // Создается новый объект

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // Изменяется существующий объект

StringBuffer sbf = new StringBuffer("Hello");
sbf.append(" World"); // Потокобезопасное изменение


Выбор зависит от требований к изменяемости и потокобезопасности.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
Reader — это абстрактный класс для чтения символьных потоков данных. Он используется для работы с текстовой информацией, предоставляя методы для чтения символов, массивов символов или строк, и часто применяется в сочетании с классами-адаптерами, такими как FileReader или InputStreamReader.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
👉 Основные методы класса Throwable:

- getMessage(): Возвращает сообщение об ошибке, которое было передано при создании исключения.
- getCause(): Возвращает причину исключения, если она была указана.
- printStackTrace(): Выводит стек вызовов, который привел к исключению.
- getStackTrace(): Возвращает массив элементов StackTraceElement, представляющих стек вызовов.
- toString(): Возвращает строковое представление исключения, включая его класс и сообщение.


try {
// код, который может вызвать исключение
} catch (Exception e) {
System.out.println(e.getMessage()); // вывод сообщения об ошибке
e.printStackTrace(); // вывод стека вызовов
}


Эти методы помогают анализировать и обрабатывать исключения в приложениях.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Метод объявляется с указанием модификатора доступа, возвращаемого типа, имени метода и списка параметров в круглых скобках. Если метод не возвращает значение, используется ключевое слово void.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
➡️ Создание объекта в Java происходит с помощью ключевого слова new, за которым следует вызов конструктора класса. Конструктор может быть как по умолчанию, так и пользовательским.


ClassName obj = new ClassName();


Если класс имеет параметризованный конструктор, объект создается с передачей аргументов:


ClassName obj = new ClassName(arg1, arg2);


Пример с классом Person:


class Person {
String name;
int age;

Person(String name, int age) {
this.name = name;
this.age = age;
}
}

Person person = new Person("Alice", 30);


Объект создается в куче, а переменная person хранит ссылку на этот объект.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Основные методы интерфейса Set включают add(), remove(), contains(), size() и isEmpty(). Эти методы позволяют добавлять элементы, удалять их, проверять наличие элемента, получать размер набора и проверять его на пустоту.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
👉 Оператор continue используется в циклах для пропуска текущей итерации и перехода к следующей. Когда встречается continue, выполнение кода внутри цикла прерывается, и управление передается на следующую итерацию.


for (int i = 0; i < 5; i++) {
if (i == 2) {
continue; // Пропустить итерацию при i == 2
}
System.out.println(i); // Выведет 0, 1, 3, 4
}


Этот оператор полезен, когда нужно пропустить выполнение части кода при определенных условиях.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Метод getMessage() возвращает текстовое сообщение об ошибке, которое обычно содержит краткое описание причины исключения. Метод printStackTrace() выводит полный стек вызовов, включая информацию о том, где именно произошло исключение, что полезно для отладки.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71