java11은 2018년 9월에 공개되었으며. java8, 17과 함께 LTS 버전이다.
23년 기준 Java 11 채택률은 약 38% (출처 : jetbrains)
Java 11에 추가된 내용
- String 클래스에 새로운 메서드 추가
- 컬렉션 인터페이스에 toArray() 메서드 추가
- Predicate에 not 메서드 추가
- 람다식에 var 변수(지역 변수) 사용 가능
1. String 클래스에 새로운 메서드 추가
String s = "";
s.strip(); // 문자열 앞, 뒤 공백 제거
s.stripLeading(); // 문자열 앞 공백 제거
s.stripTrailing(); // 문자열 뒤 공백 제거
s.isBlank(); // 문자열이 비어있거나 공백만 포함되어 있을 경우 true 반환 s.trim().isEmpty()와 결과가 동일
s.repeat(10); // 입력한 수만큼 문자열을 반복
2. 컬렉션 인터페이스에 toArray() 메서드 추가
List<String> list = Arrays.asList("1", "2", "3");
String[] array = list.toArray(String[]::new);
3. Predicate에 not 메서드 추가
※ Predicate : 조건에 대해서 true/false를 반환하는 함수형 인터페이스 (참고)
List<String> list = Arrays.asList("1", " ", "2", " ", "3");
List<String> notBlanks = list.stream()
.filter(Predicate.not(String::isBlank))
.collect(Collectors.toList());
4. 람다식에 var 변수(지역 변수) 사용 가능
List<String> list = Arrays.asList("a", "b", "c");
List<String> notBlanks = list.stream()
.map((var x) -> x.toUpperCase())
.collect(Collectors.toList());
가장 커다란 변화는 바로 라이선스 부분. Java SE 11부터 Oracle JDK의 독점 기능이 오픈 소스 버전인 OpenJDK에 이식된다. 이는 다시 말해 Oracle JDK와 OpenJDK가 완전히 동일해진다는 뜻이다.
또 다른 소식은 바로 Oracle JDK가 구독형 유료 모델로 전환된다는 점이다.
대안으로는 Zulu JDK, AdoptOpenJDK 등의 서드파티 JDK가 있다.
'간단이론정리 > JAVA' 카테고리의 다른 글
가비지 컬렉션 (GC, Garbage Collection) (1) (0) | 2024.06.15 |
---|---|
about Java 17 (0) | 2024.06.13 |
JAVA의 Wrapper Class와 Boxing & UnBoxing (0) | 2024.06.12 |
JAVA 변수의 기본형 & 참조형 정리 (0) | 2024.06.12 |
about Java 8 (0) | 2024.06.11 |