본문 바로가기
공부이야기/Java

[Java] Java 8에 대해 알아보자! (feat. 다른 버전 summary)

by coderoom 2021. 5. 9.

 

 

 

 

Summary

version 특징 발표일
Java 8 - 기본 GC -> Parallel GC
- Lambda Expression
- Optional
- Stream API
- Repeating Annotation
- 새로운 날짜와 시간 API
- Interface Default Method
2014. 03. 18
Java 9 - Java를 인터프리터 언어 쉘 처럼 사용할 수 있는 JShell 추가
- private interface method
- immutable collection
- 64비트 버전만 출시
-  .properties 파일에 UTF-8 지원
2017. 09. 21
Java 10 - var 키워드를 이용한 지역 변수 타입 추론
- 병렬 처리 GC
- 개별 쓰레드로 분리된 Stop-the-world
- 루트 CA 목록
2018. 03. 20
Java 11 - 기본 GC -> G1GC
- Lambda 파라미터에 대한 지역 변수 문법 변경
- 엡실론 GC
- HTTP 클라이언트 표준화(HttpClient 추가)
2018. 09. 25
... - switch문 확장
- switch문 개선을 위한 yield 예약어 추가
- instanceof 패턴 매칭
- record 선언 기능 추가
- EdDSA 암호화 알고리즘 추가
- 패턴 매칭
- 스케일링 가능한 낮은 지연의 GC 추가(ZGC)
- 외부 메모리 접근 API (Incubating)
- 클래스 봉인
- 다중 텍스트 블록
2019 - 2020
Java 16   2021. 03. 16

 

 


 

 

 

Java 8

오라클이 썬을 인수한 후 첫번째 버전

 

 

Lambda Expression

import java.util.*;

public class Main {
	public static void main(String[] args) {
		List<String> strList = List.of("aaa", "bbb");
		strList.forEach(str -> { // lambda expression
		   System.out.println(str); 
		});
	}
}
aaa
bbb

 

 

Optional

public class Main {
	public static void main(String[] args) {
	    String str = null;
	    String result = Optional.ofNullable(str).orElse("str is null");
	    
	    System.out.println(result);
	}
}
str is null

 

 

Stream

public class Main {
	public static void main(String[] args) {
	    List<String> strList = List.of("aaa", "bbbb", "ccccc");
	    List<Integer> result = strList.stream().map(str -> str.length()).collect(Collectors.toList());
	    result.forEach(r -> System.out.println(r));
	}
}
3
4
5

이 외에도 아래와 같은 특성 추가

  • repeating annotation
  • 새로운 날짜와 시간 API (LocalDateTime, ...)
  • interface default method

 

 

 

 

 

참고 링크

 

 

 

 

 

 


 

 

 

댓글