Java/Version

Java 11

창욱씨 2022. 1. 6. 00:43
반응형

🆕 주요 새 기능

1. 새로운 String 메서드

// isBlank() - 공백 여부 확인
"  ".isBlank();          // true
"hello".isBlank();       // false

// strip() - 유니코드 공백 제거 (trim() 개선)
"  hello  ".strip();     // "hello"
"  hello  ".stripLeading();  // "hello  "
"  hello  ".stripTrailing(); // "  hello"

// repeat() - 문자열 반복
"ab".repeat(3);          // "ababab"

// lines() - 줄 단위 Stream 반환
"a\nb\nc".lines().collect(Collectors.toList()); // ["a", "b", "c"]

2. var 키워드 람다 사용 가능 (Java 10에서 도입, 11에서 람다 확장)

// 람다 파라미터에 var 사용
var list = List.of(1, 2, 3);
list.stream()
    .map((@NotNull var x) -> x * 2)
    .forEach(System.out::println);

3. HTTP Client API (정식 표준화)

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://example.com"))
        .build();

HttpResponse<String> response =
        client.send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());

4. Files 유틸리티 메서드 추가

// 파일 읽기/쓰기 간소화
Path path = Files.writeString(Path.of("test.txt"), "Hello Java 11");
String content = Files.readString(path);

5. Optional 개선

Optional<String> opt = Optional.of("hello");
opt.isEmpty(); // false (isPresent() 반대)

🗑️ 제거된 기능

제거 항목 설명
Java EE 모듈 javax.xml, java.corba 등 제거
CORBA 레거시 분산 객체 기술 제거
JavaFX JDK에서 분리 → 별도 설치 필요
Applet API 브라우저 플러그인 지원 종료

⚙️ JVM / 성능 개선

  • ZGC(Z Garbage Collector) 실험적 도입 — 낮은 지연 시간 GC
  • Epsilon GC 도입 — GC 없이 메모리 할당만 수행 (테스트용)
  • Flight Recorder 오픈소스화 — JVM 프로파일링 도구
  • java 명령으로 단일 소스 파일 직접 실행 가능
    java HelloWorld.java
반응형