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
🛑 Spring Framework — это фреймворк для разработки приложений на Java, который упрощает создание корпоративных приложений. Он предоставляет комплексную инфраструктуру для разработки, включая поддержку инверсии управления (IoC), аспектно-ориентированного программирования (AOP) и управления транзакциями. Основной компонент Spring — контейнер IoC, который управляет жизненным циклом объектов и их зависимостями.


@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}


Spring также поддерживает интеграцию с различными технологиями, такими как JPA, JMS и REST, что делает его универсальным инструментом для разработки.

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
⚫️ Stream API в Java предоставляет удобный способ работы с последовательностями данных. Он позволяет выполнять операции над элементами коллекций, такие как фильтрация, сортировка и преобразование, в декларативном стиле.


import java.util.Arrays;
import java.util.List;

public class StreamExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

// Фильтрация и вывод чётных чисел
numbers.stream()
.filter(n -> n % 2 == 0)
.forEach(System.out::println); // Вывод: 2, 4
}
}


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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Создание объекта осуществляется с помощью оператора new, который вызывает конструктор класса. Например, MyClass obj = new MyClass(); создает новый экземпляр класса MyClass и сохраняет ссылку на него в переменной obj.

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


// Лямбда-выражение для интерфейса Runnable
Runnable runnable = () -> System.out.println("Лямбда в действии!");


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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Java Memory Model (JMM) определяет, как потоки взаимодействуют через память и какие изменения в памяти одного потока видны другим потокам. JMM обеспечивает согласованность и предсказуемость многопоточного поведения, устанавливая правила для чтения и записи переменных в памяти.

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
😊 Блок try-catch используется для обработки исключений, позволяя программе продолжать выполнение после возникновения ошибки.

🔘 Внутри блока try размещается код, который может вызвать исключение, а в блоке catch — код, который обрабатывает это исключение, обеспечивая безопасное завершение программы или выполнение альтернативных действий.


try {
// Код, который может вызвать исключение
} catch (ExceptionType e) {
// Обработка исключения
}


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

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

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

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

Пример интерфейса:


public interface Animal {
// Метод, который должен быть реализован в классе
void makeSound();
}


Класс, реализующий интерфейс:


public class Dog implements Animal {
// Реализация метода интерфейса
public void makeSound() {
System.out.println("Woof");
}
}


🔘Интерфейсы также могут содержать статические методы и методы по умолчанию с реализацией, начиная с Java 8.

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

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
➡️ Оператор == используется для сравнения примитивных типов данных на равенство. Он проверяет, равны ли значения двух переменных.

int a = 5;
int b = 5;
boolean result = (a == b); // true, так как значения равны


➡️ Оператор != проверяет на неравенство значений двух переменных.

int a = 5;
int b = 10;
boolean result = (a != b); // true, так как значения не равны


⚠️Для объектов == и != сравнивают ссылки, а не содержимое. Для сравнения содержимого объектов следует использовать метод equals().

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

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
📎 HashMap — это структура данных в Java, реализующая интерфейс Map. Она хранит пары "ключ-значение" и обеспечивает быстрый доступ к значениям по ключам.

Основы работы:

HashMap использует хеширование для вычисления индекса, по которому хранится пара "ключ-значение". Метод hashCode() ключа определяет этот индекс. При коллизиях (когда два ключа имеют одинаковый хеш) используется связанный список или дерево для хранения нескольких пар в одном индексе.

Пример использования:

import java.util.HashMap;

public class Example {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();

// Добавление элементов
map.put("Alice", 30);
map.put("Bob", 25);

// Получение значения по ключу
int age = map.get("Alice"); // age: 30

// Проверка наличия ключа
boolean hasBob = map.containsKey("Bob"); // true
}
}


Особенности:

HashMap допускает null в качестве ключей и значений, не гарантирует порядок элементов и обеспечивает амортизированную сложность операций O(1).

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

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
🟠 throw и throws используются для обработки исключений, но выполняют разные функции.

🟢 throw используется для явного выбрасывания исключения в коде. Оно создаёт экземпляр исключения и передаёт его в стек вызовов, чтобы обработать ошибку.

if (value < 0) {
throw new IllegalArgumentException("Value must be positive");
}


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

public void readFile(String fileName) throws IOException {
// код, который может вызвать IOException
}


🟢 throw инициирует исключение, а throws декларирует возможность его возникновения.

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

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

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

Java Virtual Machine (JVM) отслеживает объекты и определяет, какие из них недоступны для программы. Когда объект становится недоступным, сборщик мусора освобождает его память, делая её доступной для новых объектов.

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

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

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
😎Функциональные интерфейсы в Java — это интерфейсы с единственным абстрактным методом. Они используются в лямбда-выражениях и методах-референсах.

😎Аннотация @FunctionalInterface помогает обозначить такие интерфейсы и предотвращает добавление новых методов.

@FunctionalInterface
interface Calculator {
int calculate(int a, int b);
}

// Использование лямбда-выражения
Calculator sum = (a, b) -> a + b;
System.out.println(sum.calculate(5, 3)); // Вывод: 8


😎Функциональные интерфейсы упрощают код, делая его более выразительным и компактным, особенно при использовании лямбда-выражений.

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

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2
Поток можно создать, реализовав интерфейс Runnable и передав его экземпляр в объект Thread, либо расширив класс Thread и переопределив метод run(). После создания объекта потока, его выполнение начинается вызовом метода start().

✈️ Java собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
👉 Queue и Deque — это интерфейсы, представляющие коллекции, работающие по принципу очереди.

🔸Queue реализует структуру данных "первый вошел, первый вышел" (FIFO), где элементы добавляются в конец и удаляются из начала. Она используется для управления задачами в порядке их поступления.

🔸Deque (двусторонняя очередь) расширяет возможности Queue, позволяя добавлять и удалять элементы с обоих концов. Это обеспечивает гибкость в реализации различных алгоритмов, таких как стек (LIFO) и очередь (FIFO).

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

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