간단이론정리/JAVA

about Java 11

눕고싶은사람 2024. 6. 13. 13:34

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