728x90
반응형
jdk25에서 이전 LTS인 jdk21 이후에 나온 기능 중에 몇가지 기능들에 대해서 설명해보고자 합니다.
Super if문
상속받는 클래스에 대하여 super()라는 기능을 통하여 상속받은 클래스의 생성자를 받아올 수 있었습니다.
그러나 jdk21까지만해도 super 이후에 if문을 통해서 제어문을 지정해줘야 했습니다.
그러나 jdk25부터 super()이전에 if문이나 다른 함수호출등을 가능하도록 변경됩니다.
class A {
A(String s) { … }
}
class B extends A {
B() {
int x = compute(); // super 이전에도 실행 가능
super("value");
…
}
}
main문 변경
기존에 다음과 같은 main문을 통하여 사용이 되었었습니다.
class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
그러나 jdk25부터 다음과 같이 main문을 작성할 수 있습니다.
void main() {
System.out.println("Hello World");
}
추가로, 이후에 print문도 다음과 같이 가능하도록 수정되었습니다.
void main() {
IO.println("Hello World");
}
스레드 통합 중단
StructuredTaskScopre.open()이라는 기능이 추가되면서, 멀티 스레드로 가동중일 때, 1개의 스레드라도 종료된 경우 모든 스레드를 중단시킬 수 있는 방법이 추가되었습니다.
try (var scope = StructuredTaskScope.open()) {
Future<User> u = scope.fork(() -> findUser());
Future<Order> o = scope.fork(() -> fetchOrder());
scope.join(); // 모든 작업 종료 또는 실패 시 블록 해제
return new Response(u.get(), o.get());
} // 예외 또는 중단 시 전체 scope가 종료되어 백그라운드 스레드도 자동 종료728x90
반응형
'공식 문서 > JDK' 카테고리의 다른 글
| [JDK 15] Text Blocks (0) | 2024.08.04 |
|---|
댓글