Син
таксис: object instanceof ClassName. Возвращает true, если объект является экземпляром указанного класса или его подкласса, и false в противном случае.class Animal {}
class Dog extends Animal {}
Animal myDog = new Dog();
boolean result = myDog instanceof Dog; // true
boolean result2 = myDog instanceof Animal; // true
boolean result3 = myDog instanceof String; // falseВажно помнить, что instanceof возвращает
false, если объект равен null. Это позволяет безопасно использовать оператор без риска возникновения NullPointerException.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2✍1
equals() и hashCode(), для работы с объектами.== используется метод equals(). Это позволяет определить, что значит "равенство" для конкретного класса, обеспечивая более гибкое и точное сравнение объектов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Ссылка на метод (Method Reference) - это сокращенная запись лямбда-выражения, которая указывает на существующий метод.
Существует 4 типа ссылок на метод:
😎 Ссылка на статический метод: Class::staticMethod
😎 Ссылка на метод экземпляра: instance::method
😎 Ссылка на метод произвольного объекта: Class::method
😎 Ссылка на конструктор: Class::new
Пример:
😎 Ссылки на методы делают код более лаконичным и читаемым, особенно когда лямбда-выражение просто вызывает существующий метод.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
Существует 4 типа ссылок на метод:
Пример:
List<String> list = Arrays.asList("a", "b", "c");
// Лямбда-выражение
list.forEach(s -> System.out.println(s));
// Эквивалентная ссылка на метод
list.forEach(System.out::println);Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2
Deque (Double-Ended Queue) — это структура данных, которая позволяет добавлять и удалять элементы с обоих концов. В Java Deque является интерфейсом, расширяющим Queue, и реализуется такими классами, как ArrayDeque и LinkedList.
🟠 Deque поддерживает операции вставки, удаления и просмотра элементов с обоих концов, что делает её гибкой для реализации различных алгоритмов, таких как стек и очередь.
Пример использования ArrayDeque:
🟢 Deque полезна для задач, где требуется доступ к элементам с обоих концов.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
Пример использования ArrayDeque:
Deque<Integer> deque = new ArrayDeque<>();
deque.addFirst(1);
deque.addLast(2);
System.out.println(deque.removeFirst()); // 1
System.out.println(deque.removeLast()); // 2
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
ExecutorService — это интерфейс, который предоставляет механизм для управления потоками. Он упрощает выполнение асинхронных задач, позволяя управлять пулом потоков, планировать задачи и контролировать их завершение.
👉 Основные методы включают
👉 ExecutorService полезен для эффективного управления многопоточностью.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
submit(), shutdown(), awaitTermination(), которые помогают запускать задачи, завершать работу сервиса и ожидать завершения всех задач.ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> System.out.println("Task 1"));
executor.submit(() -> System.out.println("Task 2"));
executor.shutdown();
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1✍1
Основные характеристики чистых функций:
Чистые функции упрощают тестирование и отладку, так как их поведение предсказуемо и изолировано.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7⚡1
Stack, который предоставляет методы push(), pop(), peek(), empty() и search().push() добавляет элемент на вершину стека. pop() удаляет и возвращает верхний элемент. peek() возвращает верхний элемент без удаления. empty() проверяет, пуст ли стек. search() возвращает позицию элемента относительно вершины.Stack синхронизирован, что может влиять на производительность. Для более высокой производительности можно использовать Deque как стек.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
Существуют три класса для работы со строками:
1⃣ String является неизменяемым объектом. Любое изменение строки создает новый объект в памяти, что может негативно сказываться на производительности при частых изменениях.
2⃣ StringBuilder — изменяемый класс, не синхронизированный, что делает его быстрее
3⃣ StringBuffer также изменяемый, но он синхронизирован, обеспечивая безопасность при работе в многопоточной среде. Используется, когда необходимо выполнять операции с строками в многопоточных приложениях.
▶️ Выбор между этими классами зависит от конкретных требований к производительности и безопасности в приложении.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
String, StringBuilder и StringBuffer, каждый из которых имеет свои особенности и области применения.StringBuffer. Идеально подходит для приложений, где требуется множество операций изменения строк.String str = "Hello";
str += " World"; // Создает новый объект String
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // Изменяет существующий объект StringBuilder
StringBuffer sbf = new StringBuffer("Hello");
sbf.append(" World"); // Изменяет существующий объект StringBuffer с потокобезопасностью
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤1
java.time — это пакет в Java 8+, который предоставляет классы для работы с датами и временем.Основные классы:
LocalDate: для работы с датами без времени.LocalTime: для работы со временем без даты.LocalDateTime: для работы с датой и временем.ZonedDateTime: для работы с датой и временем с учетом временной зоны.LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.of(date, time);
ZonedDateTime zonedDateTime = ZonedDateTime.now();
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1💯1
Методы
😎 Метод
😎 Метод
😎 Метод
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
add, remove и contains являются ключевыми в работе с коллекциями в Java.add(E e) добавляет элемент в коллекцию. Если коллекция изменяется в результате вызова, возвращает true.List<String> list = new ArrayList<>();
list.add("Java"); // Добавляет "Java" в список
remove(Object o) удаляет первый найденный элемент, равный указанному. Возвращает true, если элемент был удален.list.remove("Java"); // Удаляет "Java" из спискаcontains(Object o) проверяет, содержится ли элемент в коллекции. Возвращает true, если элемент найден.boolean hasJava = list.contains("Java"); // Проверяет наличие "Java" в спискеСтавь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14✍1🤔1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4
Java собеседования pinned «ℹ️ Подписывайся на наши новые каналы! 🖥 JS собеседования 🖥 Backend собеседования»
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
List<String> unmodifiableList = Collections.unmodifiableList(list);
unmodifiableList вызовет UnsupportedOperationException. Это полезно для защиты данных от непреднамеренных изменений, особенно при передаче коллекций между методами или классами.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍1
В Java Stream API,
1️⃣ peek() используется для промежуточных операций, позволяя выполнять действие для каждого элемента в потоке без изменения элементов. Это полезно для отладки или логирования.
2️⃣ map() преобразует каждый элемент потока, применяя функцию и возвращая новый поток с преобразованными элементами.
💡 peek() не изменяет элементы, а
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
peek() и map() — это методы для работы с потоками данных, но они служат разным целям.Stream.of("a", "b", "c")
.peek(System.out::println)
.collect(Collectors.toList());Stream.of("a", "b", "c")
.map(String::toUpperCase)
.collect(Collectors.toList()); // ["A", "B", "C"]map() преобразует их.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
В Java ключевые слова
▶️
▶️
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Java собеседования
this и super используются для разных целей в контексте объектно-ориентированного программирования.this ссылается на текущий объект класса. Используется для доступа к полям и методам текущего объекта, а также для вызова конструктора из другого конструктора в том же классе.public class Example {
private int value;
public Example(int value) {
this.value = value;
}
}super ссылается на суперкласс объекта. Используется для доступа к полям и методам суперкласса, а также для вызова конструктора суперкласса.public class Subclass extends Superclass {
public Subclass() {
super();
}
}Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤3
break в Java используется для немедленного выхода из цикла или блока switch. Он позволяет прервать выполнение текущей итерации и перейти к следующему коду за пределами цикла или блока. Пример использования в цикле for:
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // Прерывает цикл, когда i равно 5
}
System.out.println(i);
}
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤔1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3
ArrayList — это класс из Java Collections Framework, который реализует интерфейс List. Он представляет собой динамический массив, который может изменять свой размер при добавлении или удалении элементов.Внутри
ArrayList используется массив для хранения элементов. При добавлении элемента, если массив заполнен, создается новый массив большего размера, и все элементы копируются в него. Это делает операции добавления и удаления элементов более затратными по времени в худшем случае.
import java.util.ArrayList;
public class Example {
public static void main(String[] args) {
// Создание ArrayList
ArrayList<String> list = new ArrayList<>();
// Добавление элементов
list.add("A");
list.add("B");
// Получение элемента
String element = list.get(0); // "A"
// Удаление элемента
list.remove("B");
}
}
ArrayList обеспечивает быстрый доступ по индексу, но операции вставки и удаления могут быть медленными из-за необходимости сдвига элементов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2