성능 개선을 위한 레코드(Records) 클래스 최적화
public record Person(String name, int age) {
public Person {
if (age < 0) {
throw new IllegalArgumentException("Age cannot be negative");
}
}
}
try {
Person invalidPerson = new Person("Bob", -5); // Age cannot be negative
} catch (IllegalArgumentException e) {
System.out.println("Exception: " + e.getMessage());
}
가비지 컬렉션 개선
- Shenandoah 가비지 컬렉터
- Java 15에서는 Shenandoah 가비지 컬렉터가 기본적으로 지원되기 시작했다.
Shenandoah는 대규모 메모리와 대규모 힙을 가진 애플리케이션의 성능을 향상시키는 것을 목표로 하는 가비지 컬렉터다.
이 가비지 컬렉터는 일부 애플리케이션에서 힙 메모리 크기가 큰 경우에 더 나은 성능을 제공할 수 있다.
- Java 15에서는 Shenandoah 가비지 컬렉터가 기본적으로 지원되기 시작했다.
- G1 가비지 컬렉터 개선
- Java 15에서는 G1(Garbage-First) 가비지 컬렉터도 여러 가지 개선을 받았다.
이로써 G1 가비지 컬렉터가 더 효율적으로 동작하고 애플리케이션의 응답 시간을 개선할 수 있다.
- Java 15에서는 G1(Garbage-First) 가비지 컬렉터도 여러 가지 개선을 받았다.
- ZGC 개선
- Java 15에서는 Z Garbage Collector(ZGC)에도 몇 가지 개선이 이루어졌다.
ZGC는 대규모 메모리와 대규모 힙을 가진 애플리케이션에서의 성능을 최적화하기 위해 설계된 가비지 컬렉터다.
개선 사항은 이 컬렉터의 성능을 더욱 향상시키고 메모리 사용량을 최소화한다.
- Java 15에서는 Z Garbage Collector(ZGC)에도 몇 가지 개선이 이루어졌다.
- G1 백그라운드 작업 개선
- G1 가비지 컬렉터의 백그라운드 작업이 개선되어 응답 시간에 미치는 영향을 최소화한다.
- Epsilon 가비지 컬렉터
- Java 15에서는 실험적으로 Epsilon 가비지 컬렉터가 추가되었다.
이 컬렉터는 실제로 가비지 컬렉션을 수행하지 않고 메모리를 누수시키는 것을 방지하고자 하는 목적으로 사용된다.
특정 유형의 애플리케이션에 유용할 수 있다.
- Java 15에서는 실험적으로 Epsilon 가비지 컬렉터가 추가되었다.
패턴 매칭 개선
// instanceof의 패턴 확장
if (obj instanceof Integer i && i > 0) {
// obj가 양의 정수일 때 실행
}
// case의 패턴 확장
String value = switch (obj) {
case String s -> "String: " + s;
case Integer i && i > 0 -> "Positive Integer: " + i;
default -> "Other";
};
반응형
'Java > History' 카테고리의 다른 글
Java 갑작스런 버전 변화, 왜? (0) | 2024.12.16 |
---|---|
Java 17 대표 코드 (0) | 2024.12.16 |
Java 12~14 대표 코드 (0) | 2024.12.16 |
Java 11 대표 코드 (0) | 2024.12.16 |
Java 9, 10 대표 코드 (0) | 2024.12.16 |