새로운 String 메서드 추가
- stript(): 문자열 앞, 뒤의 공백 제거
- stripLeading(): 문자열 앞의 공백 제거
- stripTrailing(): 문자열 뒤의 공백 제거
trim() 과의 차이점은 trim() 은 U+0020 이하의 값만을 공백으로 인식하여 제거를 한다.
하지만 유니코드이외에 다양한 공백이 존재하는데 java11 이전에는 Character.isWhitespace(int) 를 사용을 했다면 java11 에서는 stript()을 사용해서 처리가 가능하며 성능 또한 수배는 더 빠르다
- isBlank(): 문자열이 비어있거나 공백만 포함이 될 경우 true 를 반환 한다.
- lines(): 문자열을 라인단위로 쪼개서 스트림으로 반환
- repeat(i): i 만큼의 문자열을 반복해서 붙여서 반환한다.
Java File 관련 유틸 메서드 추가
Path writeString(Path,String,Charset,OpenOption)
- 파일에 문자열을 작성하고 Path를 반환
- 파일에 오픈 옵션에 따라 작동 방식이 달라진다.
- chartset 을 지정을 하지 않으면 default 로 utf-8로 지정된다
- 오버로딩 메서드로 writeString 존재
String readString(path, charset)
- 파일의 전체 내용을 읽어서 string 으로 반환하고 파일의 내용을 모두 읽거나 예외가 발생하면 알아서 close한다.
- charset을 지정하지 않으면 utf-8을 사용한다.
- 오버로딩 메소드로 readString(path) 존재
boolean isSameFile(path, path)
- 두 path 가 같은 파일을 가리키면 true 안 이면 false 반환
- 파일이 실제로 존재하지 않아도, path 기준으로 해서 같은 위치면 true
Patter.asMatchPredicate()
- java8 에서 asPredicate 는 matcher().find() 를 사용을 했지만, asMatchPredicate 는 matcher().find() 를 사용하는 Predicate 를 반환
Predicate.not(Predicate)
- 인자로 받는 Predicate의 부정형을 Predicate를 반환
TimeUnit.convert(Duration)
TimeUnit timeUnit = TimeUnit.DAYS;
timeUnit.convert(Duration.ofHours(48));
람다 파라미터로 var 사용 가능
- java8 에는 사용이 가능하나 java10에서 사라졌다가 다시 재 등장
- @Nullable 등의 어노테이션을 사용하기 위해 타입을 명시를 할때 타입을 스킵
(var o1 , var o2) -> o1 - o2
Optional.isEmpty()
- optional 이 비워져있다면 true 반환
HTTP Client
- java 표준 http api
- 성능 개선
- http/1 , http/2 , 웹소켓 을 지원
Epsilon Garbege Collector
- jvm 으로 하여금 메모리를 관리를 하지만 사용된 메모리를 재사용하지 않도록 한다.
- 메모리를 다 사용을 하면 out of memory 가 발생하고 jvm 이 셧다운이 됨
- 짧은 시간 수행하고 종료되는 어플리케이션에 사용
- 간단히 작동하고 마치고 메모리 부하가 크게 염려되지 않는 어플리케이션에 적절하게 사용