JAVA 버전

JAEMM·2022년 10월 6일
0

JAVA 8

  • Java Programming language

    • Lambda
    • Method References
      • ClassName::MethodName
    • Default Method
      • 인터페이스에서 로직 구현이 가능.
      • 하위 호환성 때문에 사용
    • @Repeatable 어노테이션
    • @Type 어노테이션
    • 향상된 타입 예측(컴파일러가 자동으로 타입을 예측해서 형 변환)
    • Method parameter reflection
  • Collections

    • Stream Api 제공
    • Hash Map 성능 향상

Java 9

  • 모듈시스템 등장(jigsaw)
  • 새로운 HTTP 클라이언트
    • HttpURLConnection 대체품
  • 프로세스 API
  • try-with-resources
    • java 7에서는 명령문으로 관리되는 각 리소스에 대해 새로운 변수를 선언해야 했음.
    • java 9에서는 리소스가 최종 또는 최종 변수에 의해 참조되는 경우는 새 변수를 선언하지 않아도 됨.
  • Diamond operator 확장
    • anonymous inner class에도 사용 가능
  • interface private method
  • 불변 set
  • Optional에서 stream 사용 가능

Java 10

  • 지역변수 타입 추론(var)
  • copyOf(수정 불가능한 복사본을 만듬)
  • toUnmodifiableList(수정 불가능한 List, Map 또는 Set)
  • Optional.orElseThrow()

Java 11

  • Oracle JDK -> Open JDK
  • String method
    • isBlank, lines, strip, stripLeading, stripTrailing, repeat
  • file class
    • readString, writeString
  • toArray
  • Predicate.not
  • 람다에서 지역변수 var
  • HTTP/1.1 및 HTTP/2 지원

Java 12

  • String 함수
    • indent(들여쓰기)
    • transform
  • 파일 함수
    • mismatch: 두 파일을 비교하고 일치하지 않는 첫 번째 바이트의 위치를 찾는데 사용.
  • Teeing Collector: 1, 2번 컬렉터의 연산결과를 Bitfunction 아규먼트로 넘겨 Bitfunction이 최종 컬렉팅을 함.
  • number formatting
  • Switch가 좀 간단하게 변함

Java 14

  • Switch 표현식: 전략패턴 쉽게 구현 가능.
    @Test
    @SuppressWarnings("preview")
    public void whenSwitchingOnOperationSquareMe_thenWillReturnSquare() {
        var me = 4;
        var operation = "squareMe";
        var result = switch (operation) {
            case "doubleMe" -> {
                yield me * 2;
            }
            case "squareMe" -> {
                yield me * me;
            }
            default -> me;
        };
        assertEquals(16, result);
    }
  • 텍스트 블록
    String TEXT_BLOCK_JSON = """
    {
        "name" : "Baeldung",
        "website" : "https://www.%s.com/"
    }
    """;
    ```

Java 15

  • record
    • 자동으로 생성자와 멤버를 가지는 클래스를 만들어줌.
    • final class
    • Lombok을 사용 안해도 됨.

Java 16

  • 프록시 인스턴스에서 기본 메소드 호출
  • Day Period Support
  • Stream.toList
  • Vector Api Incubator
  • 레코드를 inner class의 class 멤버로 정의할 수 있음.
  • instance of

0개의 댓글