JAVA

[JAVA] JAVA 11 주요 변경점

민덕이 2024. 9. 16. 22:08
반응형

Java 11의 주요 변경사항 총정리

Java 11은 2018년 9월에 출시된 장기 지원 버전(LTS)으로, 여러 가지 중요한 기능과 개선사항을 도입했습니다. 이번 포스트에서는 Java 11의 주요 변경사항들을 자세히 살펴보겠습니다.

1. 새로운 문자열 메서드

String 클래스에 여러 유용한 메서드가 추가되었습니다.

주요 메서드:

  • isBlank(): 문자열이 비어있거나 공백만 포함하는지 확인
  • lines(): 문자열을 줄 단위로 스트림으로 변환
  • strip(), stripLeading(), stripTrailing(): 문자열의 앞뒤 공백 제거
  • repeat(int): 문자열을 지정된 횟수만큼 반복

예시 코드:

String str = "  Hello Java 11  ";
System.out.println(str.strip()); // "Hello Java 11"
System.out.println("abc".repeat(3)); // "abcabcabc"

2. 람다 매개변수에 대한 지역 변수 문법

람다 표현식의 매개변수에 var 키워드를 사용할 수 있게 되었습니다.

주요 특징:

  • 매개변수에 애노테이션을 추가할 수 있습니다.
  • 코드의 일관성을 높일 수 있습니다.

예시 코드:

(var x, var y) -> x + y
(@Nonnull var x, @Nullable var y) -> x + y

3. HTTP 클라이언트 API (표준화)

Java 9에서 도입된 HTTP 클라이언트 API가 표준화되었습니다.

주요 특징:

  • HTTP/2를 지원합니다.
  • 비동기 요청을 지원합니다.
  • 웹소켓을 지원합니다.

예시 코드:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("https://api.example.com"))
      .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

4. 네스트 기반 액세스 제어

중첩 클래스에 대한 액세스 제어가 개선되었습니다.

주요 특징:

  • 중첩 클래스가 외부 클래스의 private 멤버에 직접 접근할 수 있습니다.
  • 리플렉션 API가 개선되었습니다.

5. 자바 파일 실행 (javac 없이 실행)

단일 자바 소스 파일을 직접 실행할 수 있게 되었습니다.

주요 특징:

  • 컴파일 단계를 거치지 않고 바로 실행할 수 있습니다.
  • 스크립트 언어와 유사한 사용성을 제공합니다.

예시:

java HelloWorld.java

6. 새로운 가비지 컬렉터: Epsilon

메모리를 회수하지 않는 실험적인 가비지 컬렉터가 도입되었습니다.

주요 특징:

  • 메모리 할당만 처리하고 실제 가비지 컬렉션은 수행하지 않습니다.
  • 성능 테스트, 메모리 압박 테스트 등에 유용합니다.

7. Flight Recorder

Java Flight Recorder가 오픈소스로 전환되었습니다.

주요 특징:

  • 프로덕션 환경에서의 문제 진단에 유용합니다.
  • 낮은 오버헤드로 실행 시간 데이터를 수집할 수 있습니다.

8. 동적 클래스 파일 상수

클래스 파일 형식이 확장되어 새로운 상수 풀 형식을 지원합니다.

주요 특징:

  • JVM의 성능을 향상시킵니다.
  • 언어 구현체에 더 많은 유연성을 제공합니다.

9. 암호화 알고리즘 개선

보안 관련 알고리즘이 개선되었습니다.

주요 특징:

  • ChaCha20 및 Poly1305 암호화 알고리즘이 추가되었습니다.
  • 타원 곡선 암호화 알고리즘이 개선되었습니다.

결론

Java 11은 장기 지원 버전으로, 많은 중요한 기능과 개선사항을 도입했습니다. 특히 HTTP 클라이언트 API의 표준화, 새로운 문자열 메서드, 그리고 자바 파일의 직접 실행 기능은 개발자들의 생산성을 크게 향상시킬 것으로 기대됩니다.

이러한 변경사항들은 Java 생태계를 더욱 강력하고 효율적으로 만들어주고 있습니다. Java 11의 새로운 기능들을 적극 활용하여 더 나은 코드를 작성하고, 더 효율적인 애플리케이션을 개발하시기 바랍니다!

반응형