SeouliteLab

JDK 21의 새로운 기능과 예제 본문

프로그래밍

JDK 21의 새로운 기능과 예제

Seoulite Lab 2024. 4. 5. 15:29

JDK 21은 Java 개발자들을 위한 새로운 기능을 제공하여 개발 생산성을 향상시킵니다. 이번 글에서는 JDK 21의 주요 기능과 각 기능에 대한 예제를 살펴보겠습니다.

1. 로컬 변수 유형 추론의 확장
JDK 21에서는 로컬 변수 유형 추론(var)이 확장되어 더욱 다양한 상황에서 사용할 수 있습니다. 이제 var 키워드는 루프 변수와 인덱스 변수에서도 사용할 수 있습니다.

import java.util.List;

public class LocalVariableTypeInferenceExample {
    public static void main(String[] args) {
        var numbers = List.of(1, 2, 3, 4, 5);

        for (var number : numbers) {
            System.out.println(number);
        }
    }
}

로컬 변수 유형 추론을 사용하면 코드를 더 간결하게 작성할 수 있으며, 타입을 명시적으로 선언하지 않아도 됩니다.

2. 불변형 튜플(Tuple)
JDK 21에서는 불변형 튜플을 위한 새로운 클래스가 추가되었습니다. 이를 통해 여러 값을 하나의 객체로 간단하게 묶을 수 있습니다.

public class ImmutableTupleExample {
    public static void main(String[] args) {
        var tuple = new Tuple<>(10, "Hello", true);

        System.out.println("첫 번째 값: " + tuple.getFirst());
        System.out.println("두 번째 값: " + tuple.getSecond());
        System.out.println("세 번째 값: " + tuple.getThird());
    }
}

불변형 튜플을 사용하면 데이터를 안전하게 보관하고 쉽게 전달할 수 있습니다.

3. HTTP/2 클라이언트
JDK 21에서는 HTTP/2 클라이언트를 지원합니다. 이를 통해 HTTP/2 프로토콜을 사용하여 더욱 효율적으로 통신할 수 있습니다.

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(new URI("https://example.com"))
                .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println("응답 코드: " + response.statusCode());
        System.out.println("응답 본문: " + response.body());
    }
}

HTTP/2 클라이언트를 사용하면 빠르고 안전한 네트워크 통신을 할 수 있습니다.