Встречается на собеседованиях • сегодня
В чем разница между работой с классами в разных версиях Java
Начиная с Java 8 появились значительные изменения в работе с классами:
1. **Лямбда-выражения и функциональные интерфейсы** (Java 8+):
```java
List list = Arrays.asList("a", "b", "c");
list.forEach(s -> System.out.println(s));
```
2. **Методы по умолчанию в интерфейсах** (Java 8+):
```java
interface MyInterface {
default void myMethod() {
System.out.println("Default implementation");
}
}
```
3. **Записи (Records)** (Java 14+, стабильно с Java 16):
```java
record Person(String name, int age) {}
// Автоматически генерирует конструктор, геттеры, equals, hashCode, toString
```
4. **Sealed-классы** (Java 15+, стабильно с Java 17):
```java
public sealed class Shape permits Circle, Square {}
```
5. **Pattern Matching для instanceof** (Java 16+):
```java
if (obj instanceof String s) {
System.out.println(s.length());
}
```
6. **Классы-обертки получили кэширование** (Java 5+):
```java
Integer a = 127;
Integer b = 127;
System.out.println(a == b); // true из-за кэширования
```
7. **Модульная система** (Java 9+) с `module-info.java`
Основной тренд - уменьшение шаблонного кода и улучшение читаемости.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы