Java 13
JEP 355: Text Blocks
- preview feature
- String str = """ 문자열 """;
- 멀티라인 문자열을 더 보기 좋고 편하게 작성할 수 있음.
String textBlock = """
This
is
a
new
feature,
Text
Block!""";
System.out.println(textBlock);
String inline = "\nThis\nis\anew\nfeature,\nText\nBlock!";
System.out.println(textBlock.equals(inline));
output:
This
is
a
new
feature,
Text
Block!
true
줄바꿈 문자가 자동으로 포함된다. 자바 코드로 json, html 텍스트를 작성할 때 아주 편리할 듯.
텍스트 블록용 String 메서드 추가
- formatted(Object ...args): String.format() 와 비슷한 기능. 텍스트블록에 사용됨.
- stripIndent(): 문자열 안의 모든 라인에 strip를 적용하여 앞 뒤 공백을 제거함.
- translateEscapes(): 연속된 이스케이프 문자를 변환 - ""\\t" => "\t"
JEP 354: Switch Expressions Enhancements
- preview feature
- yield 키워드:
switch(mode) {
case "a", "b":
yield 1;
case "c", "d", "e":
yield 2;
default:
yield -1;
};
- yield 는 값을 반환하고 switch를 빠져나감 (break)
- arrrow 도 여전히 사용 가능.
JEP 353: Socket API 재구현
- 신규 클래스 sun.nio.ch.NioSocketImpl 추가되어 java.net.PlainSocketImpl 을 대체함.
- NioSocketImpl 는 내부에서 synchronized 대신 java.util.concurrent 패키지의 locks를 사용함.
- 아래 아규먼트로 Socket API 사용 가능:
-Djdk.net.usePlainSocketImpl
JEP 350: Dynamic CDS Archive
- JVM 옵션을 통해 CDS를 더 편하게 사용 가능:
$ java -XX:ArchiveClassesAtExit=my_app_cds.jsa -cp my_app.jar
$ java -XX:SharedArchiveFile=my_app_cds.jsa -cp my_app.jar
JEP 351: ZGC:Uncommit Unused Memory
- ZGC가 사용하지 않는 힙 메모리를 OS에 반환하도록 함.
static java.nio.file.FileSystems.newFileSystem 메서드 추가
- newFileSystem(Path, ClassLoader)
- newFileSystem(Path, Map<String, ?>)
- newFileSystem(Path, Map<String, ?>, ClassLoader)
DOM and SAX Factories with Namespace Support
- newDefaultNSInstance()
- newNSInstance()
- newNSInstance(String, ClassLoader)
출처:
'Java > Core' 카테고리의 다른 글
Java 14 간략히 정리 (0) | 2020.07.16 |
---|---|
Java 12 간략히 정리 (0) | 2020.07.15 |
Java 11 간략히 정리 (0) | 2020.07.15 |
Java 10 간략히 정리 (0) | 2020.07.15 |
IO, NIO, NIO2 (0) | 2020.02.26 |