Java | Вопросы собесов
описание
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
11 390
подписчиков
Охват к подписчикам
9,3%
ERR
Реакции к просмотрам
0,30%
95 на 32 постов
Пересылки к просмотрам
0,43%
138
Постов в день
2,1
всего 28
Где отзываются чаще
доля реакций к просмотрам- 14 авг.🤔 Какая основная идея equals и hashCode? Метод equals определяет, равны ли два объекта по содержимому, а hashCode возвращает целое число, представляющее объект в хэш-структурах. Основная идея — если два объекта равны по equals, их hashCode должен совпадать. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,76%
- 13 авг.🤔 Что такое livelock? Livelock — это ситуация, в которой потоки продолжают реагировать друг на друга, но не могут продвинуться в выполнении задач, например, из-за постоянных попыток избежать конфликта. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,71%
- 9 авг.🤔 Какие методы располагаются в интерфейсе? В интерфейсе могут быть абстрактные методы, которые по умолчанию являются public и abstract. Java 8 добавила методы с реализацией по умолчанию (default) и статические методы (static). Также можно использовать приватные методы (private) для внутренних нужд интерфейса. Это делает интерфейсы более функциональными и гибкими для расширения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,67%
- 12 авг.🤔 Чем отличаются HashSet и LinkedHashSet? - HashSet: - Быстрая вставка и поиск. - Не сохраняет порядок элементов. - LinkedHashSet: - Также использует хеш-таблицу. - Сохраняет порядок вставки элементов. Выбирают в зависимости от требований к порядку. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,55%
- 9 авг.🤔 Какие шаги нужно выполнить для прочтения текстового файла? Для прочтения текстового файла в Java нужно выполнить несколько шагов. 1⃣Выбор метода чтения файла В Java есть несколько способов читать текстовые файлы: 1. Использование класса FileReader. 2. Использование BufferedReader для построчного чтения. 3. Использование java.nio.file.Files для чтения всех строк файла. 4. Применение Scanner для гибкого чтения данных. 2⃣Открытие файла Нужно указать путь к файлу (абсолютный или относительный) и передать его в выбранный класс. Например: FileReader reader = new FileReader("file.txt"); 3⃣Чтение данных Выберите подходящий метод для обработки содержимого файла: - Построчное чтение. - Чтение символов. - Чтение всех строк сразу (например, через Files.readAllLines). 4⃣Закрытие ресурса Для освобождения системных ресурсов после работы с файлом нужно закрыть поток. Это делается вручную или с помощью конструкции try-with-resources. 🚩Примеры реализации Построчное чтение с BufferedReader import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class FileReadExample { public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); // Вывод строки } } catch (IOException e) { System.out.println("Ошибка: " + e.getMessage()); } } } Чтение файла с помощью Files import java.nio.file.Files; import java.nio.file.Paths; import java.io.IOException; import java.util.List; public class FileReadExample { public static void main(String[] args) { try { List<String> lines = Files.readAllLines(Paths.get("file.txt")); for (String line : lines) { System.out.println(line); } } catch (IOException e) { System.out.println("Ошибка: " + e.getMessage()); } } } Чтение через Scanner import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class FileReadExample { public static void main(String[] args) { try (Scanner scanner = new Scanner(new File("file.txt"))) { while (scanner.hasNextLine()) { System.out.println(scanner.nextLine()); // Построчное чтение } } catch (FileNotFoundException e) { System.out.println("Файл не найден: " + e.getMessage()); } } } Ставь 👍 и забирай 📚 Базу знаний0,52%
- 5 авг.🤔 Что такое ordering? Ordering (упорядочивание) в многопоточности — это порядок, в котором операции записи и чтения видны разным потокам. Неправильный порядок может привести к ошибкам даже при правильной логике программы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,46%
- 15 авг.🤔 Что такое HQL? HQL (Hibernate Query Language) – это язык запросов, используемый в Hibernate (фреймворке для работы с базами данных в Java), который похож на SQL, но оперирует не таблицами и столбцами, а объектами и их свойствами. 🚩Зачем нужен HQL? Когда мы работаем с базами данных в Hibernate, мы используем объектно-реляционное отображение (ORM), где каждая таблица представляется как класс, а строки – как объекты. Однако иногда нам нужно делать запросы к базе данных, например: Получить список объектов, соответствующих определённому критерию Отфильтровать, отсортировать или объединить данные Выполнить массовое обновление или удаление Можно, конечно, использовать чистый SQL, но тогда мы потеряем преимущества ORM, такие как переносимость кода между разными базами данных. HQL решает эту проблему, позволяя писать запросы в объектных терминах, а Hibernate сам преобразует их в правильный SQL для конкретной базы данных. 🚩Как выглядит HQL? HQL очень похож на SQL, но вместо таблиц и столбцов мы используем имена классов и их полей. 🟠Пример 1: Получение списка объектов Допустим, у нас есть класс User, связанный с таблицей users: @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int age; // Геттеры и сеттеры } Теперь напишем HQL-запрос, чтобы получить всех пользователей старше 18 ле String hql = "FROM User WHERE age > 18"; List<User> users = session.createQuery(hql, User.class).getResultList(); Выборка только имен пользователей String hql = "SELECT u.name FROM User u"; List<String> names = session.createQuery(hql, String.class).getResultList(); Запрос с параметрами (предотвращает SQL-инъекции) String hql = "FROM User WHERE name = :name"; Query<User> query = session.createQuery(hql, User.class); query.setParameter("name", "Иван"); List<User> users = query.getResultList(); 🚩Плюсы ➕Независимость от СУБД HQL автоматически адаптируется под MySQL, PostgreSQL, Oracle и другие базы. ➕Оперирование объектами вместо таблиц и столбцов мы работаем с сущностями (классами Java). ➕Безопасность использование параметров (setParameter()) предотвращает SQL-инъекции. ➕Гибкость поддержка JOIN, GROUP BY, ORDER BY и других SQL-конструкций. Ставь 👍 и забирай 📚 Базу знаний0,46%
- 7 авг.🤔 Чем отличается компонент от бина? В Spring оба термина – Bean и Component – связаны с управляемыми объектами, но у них разное предназначение. 🚩Что такое `@Component`? @Component делает класс Spring-бином автоматически. Spring сам создаст и зарегистрирует объект в контейнере. import org.springframework.stereotype.Component; @Component public class Car { public void drive() { System.out.println("Машина едет..."); } } Как получить объект? import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); Car car = context.getBean(Car.class); car.drive(); } } 🚩Что такое `@Bean`? @Bean создаёт Bean вручную в @Configuration-классе. Можно использовать, если нужно передать параметры или создать Bean из библиотеки. import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { @Bean public Car car() { return new Car(); // Создаём объект вручную } } Как получить Bean? ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); Car car = context.getBean(Car.class); Ставь 👍 и забирай 📚 Базу знаний0,44%
- 6 авг.🤔 В чём отличие List от Set? - List — сохраняет порядок элементов, допускает повторы; - Set — не допускает дубликатов, порядок может быть произвольным (кроме LinkedHashSet, TreeSet). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,39%
- 14 авг.🤔 Как работать на Spring? Spring – это мощный фреймворк для разработки Java-приложений, который упрощает работу с бэкендом, базами данных и веб-сервисами. 🚩Основные шаги для работы на Spring 1⃣Настроить проект 2⃣Создать контроллеры (обрабатывают HTTP-запросы). 3⃣Добавить сервисы (логика приложения). 4⃣Работать с базой данных (Spring Data JPA, Hibernate). 5⃣Запустить приложение и тестировать. 🚩Настройка проекта (Spring Boot) 🟠Создание проекта через Spring Initializr Самый быстрый способ – использовать [Spring Initializr](https://start.spring.io/). Заходим на [start.spring.io](https://start.spring.io/) Выбираем: Maven / Gradle Java 17+ Spring Boot 3+ Зависимости: Spring Web, Spring Data JPA, PostgreSQL/MySQL (если нужна БД) Скачиваем и открываем в IntelliJ IDEA или VS Code. <dependencies> <!-- Spring Boot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot JPA + Hibernate --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- Драйвер для PostgreSQL --> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> <!-- Lombok (автоматически генерирует геттеры/сеттеры) --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> </dependencies> 🚩Создание контроллера (REST API) Контроллер обрабатывает HTTP-запросы (GET, POST, PUT, DELETE). @RestController @RequestMapping("/hello") public class HelloController { @GetMapping public String sayHello() { return "Привет, Spring!"; } } Запрос в браузере http://localhost:8080/hello Ответ Привет, Spring! 🚩Добавление бизнес-логики (Service Layer) Сервисы обрабатывают данные и реализуют бизнес-логику. @Service public class UserService { public String getUserGreeting(String name) { return "Привет, " + name + "!"; } } Использование сервиса в контроллере @RestController @RequestMapping("/user") public class UserController { private final UserService userService; @Autowired // Внедрение зависимости public UserController(UserService userService) { this.userService = userService; } @GetMapping("/{name}") public String getUserGreeting(@PathVariable String name) { return userService.getUserGreeting(name); } } Запрос в браузере: http://localhost:8080/user/Иван Ответ Привет, Иван! Ставь 👍 и забирай 📚 Базу знаний0,39%
- 11 авг.🤔 Что такое HQL? HQL (Hibernate Query Language) — это язык запросов, похожий на SQL, но оперирующий Java-классами и их свойствами, а не таблицами и колонками. Он позволяет работать с объектной моделью и использовать возможности Hibernate ORM. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,37%
- 8 авг.🤔 Как разрешаются проблемы дефицита памяти и исключения OutOfMemoryError? OutOfMemoryError возникает, когда JVM не может выделить память. Причины и решения: - Утечка памяти — объекты остаются в памяти без необходимости → использовать профилировщики. - Неправильные настройки Heap → увеличить размер -Xmx, -Xms. - Плохая логика (бесконечные коллекции, рекурсия) → анализ и оптимизация кода. - Неосвобождённые ресурсы → использовать try-with-resources. Важно отлаживать утечки и оптимизировать структуру данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,37%