Java 13
2021. 9. 19. 17:52ㆍJava/버전별 변화
728x90
미리 보는 변화
Switch문 개편
@Test
@SuppressWarnings("preview")
public void whenSwitchingOnOperationSquareMe_thenWillReturnSquare() {
var me = 4;
var operation = "squareMe";
var result = switch (operation) {
case "doubleMe" -> {
yield me * 2;
}
case "squareMe" -> {
yield me * me;
}
default -> me;
};
assertEquals(16, result);
}
Text Block
기존에는 여러 줄에 걸쳐진 문자열을 표현할 때는 \r, \n과 같은 형태로 구현해야 했습니다. 그러나 text block을 이용해 더 간편하게 보여줄 수 있도록 만들었습니다.
이전 버전
String JSON_STRING
= "{\r\n" + "\"name\" : \"Baeldung\",\r\n" + "\"website\" : \"https://www.%s.com/\"\r\n" + "}";
Text Block
String TEXT_BLOCK_JSON = """
{
"name" : "Baeldung",
"website" : "https://www.%s.com/"
}
""";
성능 개선
ZGC의 사용하지 않는 메모리 반환
기존의 ZGC는 오랫동안 사용되지 않던 메모리를 OS에 반환하지 않는 문제가 있었습니다. 그래서 아래와 같은 몇몇 환경에서는 좋은 방식이 아니었습니다.
- 사용한 리소스만큼 비용을 지불하는 컨테이너 환경
- 오랫동안 유휴 상태로 있거나 다른 애플리케이션들과 리소스를 공유하는 환경
- 실행시에는 많은 메모리를 사용하지만, 실행 이후에는 일정한 메모리만을 사용하는 환경
이러한 환경에서도 좋은 성능을 보여주기 위해서 더 이상 사용하지 않는 메모리는 OS로 반환하되, 최소 Heap 크기는 유지하도록 개선했습니다.
728x90