Undergoing

Java 8 vs Java 11(2021.10.25) 본문

개발/Development Tools

Java 8 vs Java 11(2021.10.25)

Halkrine 2021. 10. 25. 16:47

* 굳이 8버전부터 비교하는 건 안정성, 라이센스 문제 등 현재 기준 최후의 마지노선이라 생각하기 때문

 

Java 8 vs Java 11(Java 8 v/s Java 11)

Java 8 Java 11
AppletViewer 지원 AppletViewer미지원
AWTUtilities class가 존재하지만 가급적 사용하지 말 것을 권장 AWTUtilities class 사용 불가
String 관련 method가 적음 isBlank(), lines(), repeat(n), stripLeading(), stripTrailng(), strip() 등의 String 관련 method 추가
람다 파라미터에 대한 특별한 변수가 사용되지 않음 람다식에 대한 var 변수 사용 가능
Java Deployment Technology 사용 가능 Java Deployment Technology 제거됨
JMC, JavaFX를 Oracle JDK에서 사용할 수 있음 JMC, JavaFX가 Oracle JDK에서 제거됨
file에 대한 적합한 메소드가 없음 writeString(), readString(), isSameFile() 등의 메소드를 통해 파일 구성에 도움을 줌
패턴인식 불가능 asMatchPredicate() 메소드를 통해 패턴인식 가능
2030년 12월까지 기술지원(Extended Support) 가능 기술지원 불가능
  • AppletViewer : Java Applet을 실행하기 위한 것인데, 2015년~2016년 사이에 지원을 종료하기도 했고, 이제 와서 굳이 사용할 일도 많지 않게 되다보니 11버전부터는 지원하지 않음
  • AWTUtilities : GUI를 지원하기 위한 library인데, 이래저래 오류가 많아 8 버전에서도 사용하지 말것을 권장한 모양이다. 결국 11버전에서는 퇴출
  • String method 추가
    • isBlank() : 문자열이 비거나 공백일 경우 true 반환
    • lines() : 문자열을 줄 단위로 쪼개어 스트림 반환
    • repeat(n) : 문자열에 대해 n번 반복하여 붙여 반환
    • stripLeading() : 문자열 앞 공백 제거
    • stripTrailing() : 문자열 뒤 공백 제거
    • strip() : 양쪽 공백 제거
  • Lambda에서 var 변수 사용 가능
Function<String, String> toLowerCase = (var input) -> input.toLowerCase();
  • file 처리
    • writeString() : 파일에 문자열을 쓰고 경로로 반환
    • readString() : 파일 내용을 String으로 반환
    • isSameFile() : 서로 같은 파일을 바라보는지 확인. 같은 파일일 경우 true, 아니면 false
  • 패턴인식 : Java 8에서는 asPredicate()를 통해 주어진 문자열에서 패턴을 찾을 수 있는지 테스트하기 위해 '조건자'를 반환함. Java 11에서는 asMatchPredicate()를 통해 패턴이 주어진 문자열과 일치하는지 테스트하기 위해 '술어'를 반환함