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)

 

 

출처: 

https://www.journaldev.com/33204/java-13-features

'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

+ Recent posts