본문 바로가기
공식 문서/JDK

JDK 25에 추가된 기능

by lms0806 2025. 8. 3.
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

댓글