길민호(ethan.mino)
코딩수첩
길민호(ethan.mino)
전체 방문자
오늘
어제
  • 분류 전체보기 (215)
    • Computer Science (0)
    • Web (6)
      • CSS (0)
      • HTML (0)
    • Node.js (0)
    • Javascript (2)
    • Java (46)
      • Spring (27)
      • Jsp (0)
    • C\C++ (2)
    • Programming (0)
    • AI (0)
    • Database (7)
    • Git (5)
    • Algorithm (119)
      • Stack (0)
      • Queue (0)
      • Linked List (0)
      • Sort (0)
      • Simulation (27)
      • Recursion (0)
      • Backtracking (4)
      • Two Pointer (3)
      • Dynamic Programming (19)
      • Greedy (10)
      • Graph (3)
      • Dijkstra (1)
      • BFS\DFS (8)
      • Floyd (1)
      • MST (4)
      • Tree (4)
      • Binary Search (8)
      • Binary Search Tree (4)
    • IntelliJ (4)
    • Vscode (0)
    • Operating System (0)
    • 후기 (3)
    • 성장일지 (13)
    • 스터디 (7)
    • 설치 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅡ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
길민호(ethan.mino)

코딩수첩

Java

Java 8 / 11 / 17의 변화

2022. 7. 4. 16:53

오늘은 Java 8, 11, 17은 무엇이고, 각 버전의 주요 업데이트 사항은 무엇인지 알아보겠습니다.

 

❓LTS란?


LTS는 Long Term Support를 의미합니다.

즉, 출시 후 8년 동안 보안 업데이트 및 버그 수정을 지원합니다.

일반 버전과 달리 안정성에 중점을 둔 버전으로, 기능 업데이트는 최소한으로 이루어지거나, 아예 없는 반면 보안 업데이트의 지원이 일반 버전보다 훨씬 깁니다. 그렇기 때문에 서버 등 최신 기능보다 안정성이 중요한 곳에서 많이 쓰이며, 기업이나 기관 등에서 기능 업데이트로 인해 이용 중인 다른 소프트웨어가 영향을 받는 것을 피하기 위해 이용하기도 합니다.

 

Java 8 / 11 / 17은 모두 LTS(Long Term Support) 버전입니다.

 

❓Java 8에서는 어떤 변화가 있었는가?


Java 8에서는 아래와 같은 변화가 있었습니다.

  1. Lamda Expression 및 Method Reference 도입
    • Lambda Expression
      • 익명 함수를 생성하기 위한 표현식
    • Method Reference
      • Lambda 표현식을 더 간단하게 표현하는 방법
      • ClassName::MethodName 형식으로 사용
  2. Stream API 도입
    • Collection의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 내부 반복자
  3. Interface default Method 도입
    • Interface 내부에서 default 메서드를 선언할 수 있다. 
  4. Optional Class 도입
    • Optional Class를 이용하여 NullPointException이 발생하는 것을 방지해줍니다.

❓Java 11에서는 어떤 변화가 있었는가?


  1. String과 Files에 새로운 메서드 추가
    • String에 strip, isBlack, lines 등
    • Files에 readString 등
  2. Lambda 인수로 var 사용 가능
  3. 새로운 HTTPClient API
  4. 차세대 Garbage Collector

❓Java 17에서는 어떤 변화가 있었는가?


  1. Pattern Matching for switch
    • instanceof를 사용할 때 캐스팅하는 단계를 간소화할 수 있다.
  2. Sealed Classes
    1. 무분별한 상속은 코드를 이해하는데 더 어려움을 줄 수 있음
    2. 특정 서브 클래스에게만 확장을 허용하고, 다른 클래스에는 봉인(sealed)하는 방법

참고


  • LTS 나무위키
  • Java 8부터 16까지의 신규 기능 
  • 자바 17의 새로운 기능들, 3년 만에 LTS 버전 릴리즈!
  • Java Lambda Expressions

'Java' 카테고리의 다른 글

Java 입출력, Scanner와 BufferedReader의 비교  (0) 2022.07.25
Java 입출력 (스트림, 버퍼)  (0) 2022.07.25
JDBC란?  (0) 2020.07.11
JSTL(JSP Standard Tag Library)이란?  (0) 2020.07.09
EL(Expression Language)이란?  (0) 2020.07.09
    'Java' 카테고리의 다른 글
    • Java 입출력, Scanner와 BufferedReader의 비교
    • Java 입출력 (스트림, 버퍼)
    • JDBC란?
    • JSTL(JSP Standard Tag Library)이란?
    길민호(ethan.mino)
    길민호(ethan.mino)
    💻 호기심 많은 서버 개발자 길민호입니다.

    티스토리툴바