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

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

Backend собеседования - @frontview_backend
Java работа - @frontview_java_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
🔴Iterator и ListIterator - интерфейсы для перебора элементов коллекций, но с существенными различиями:

1. Направление обхода:
- Iterator: только вперед (методы hasNext(), next())
- ListIterator: в обоих направлениях (дополнительно hasPrevious(), previous())

2. Позиционирование:
- ListIterator позволяет узнать текущую позицию (nextIndex(), previousIndex())

3. Модификация:
- Iterator: только удаление (remove())
- ListIterator: удаление, добавление (add()) и замена (set())

4. Применимость:
- Iterator: для любых коллекций
- ListIterator: только для списков (List)


List<String> list = new ArrayList<>();
// Получение итераторов
Iterator<String> iterator = list.iterator();
ListIterator<String> listIterator = list.listIterator();


ListIterator предоставляет больше возможностей, но применим только к спискам.

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
👉PrintWriter — класс для удобной записи форматированного текста в символьный поток вывода. Он расширяет класс Writer и предоставляет методы для печати различных типов данных.

Основные особенности:
- Автоматическая обработка исключений (не выбрасывает IOException)
- Методы print() и println() для разных типов данных
- Возможность автоматического сброса буфера (autoFlush)
- Поддержка форматирования через printf() и format()


// Запись в файл
try (PrintWriter writer = new PrintWriter(new FileWriter("output.txt"))) {
writer.println("Привет, мир!"); // Запись строки с переносом
writer.print(42); // Запись числа без переноса
writer.printf("Число Pi: %.2f", Math.PI); // Форматированный вывод
}

// Запись в консоль
PrintWriter consoleWriter = new PrintWriter(System.out, true); // autoFlush=true
consoleWriter.println("Текст в консоль");


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

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Хранение данных:
- Has
hMap использует хеш-таблицу, элементы хранятся без гарантии порядка.
- Tre
eMap основан на красно-черном дереве, элементы сортируются по ключам (естественный порядок или Comparator).

Производительно
сть:
- Has
hMap обеспечивает O(1) для операций put() и get() в среднем случае.
- Tre
eMap имеет O(log n) для этих операций из-за необходимости поддерживать упорядоченность.

Дополнительные возможно
сти:
- Tre
eMap предоставляет методы для работы с отсортированными данными (firstKey(), lastKey(), headMap(), tailMap()).
- Has
hMap позволяет использовать null в качестве ключа и значения, TreeMap — только в качестве значения.


Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("key", 1); // порядок не гарантируется

Map<String, Integer> treeMap = new TreeMap<>();
treeMap.put("key", 1); // автоматическая сортировка


Выбор между ними зависит от необходимости сортировки и производительности.

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Автоматическая буферизация:
PrintWriter оборачивает выходные потоки, уменьшая количество операций ввода-вывода за счет буферизации.

Удобные методы записи:
Поддерживает методы print(), println(), printf() для простого форматированного вывода данных.

Гибкость работы с разными источниками:
Может писать в OutputStream (байтовые потоки) или Writer (символьные потоки), включая файлы, сокеты и консоль.

Обработка ошибок:
Автоматически проверяет ошибки через checkError(), упрощая отладку.


PrintWriter writer = new PrintWriter("output.txt");
writer.println("Text"); // запись с переводом строки
writer.printf("Formatted: %d", 123); // форматированный вывод
writer.close();


Используется для удобного и эффективного вывода текстовых данных.

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

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

public class Example {
private int value;

public Example(int value) {
this.value = value; // 'this.value' — поле класса, 'value' — параметр конструктора
}

public void setValue(int value) {
this.value = value; // 'this.value' — поле класса, 'value' — параметр метода
}
}


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

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

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