
자바야~
엄마가 말하지 않아도 스스로 발전한 거야?
NullPointerException 방지용 값 컨테이너.java.time 패키지 새로 도입takeWhile, dropWhile 등 메소드 추가var 키워드
지역 변수 타입 추론 지원
Default GC 변경
java.net.http) 도입isBlank, lines, repeat 등Record: 데이터 클래스를 간단하게 선언, 불변 객체 지원
대략 이정도의 편의성 개선이라고 한다.
패턴 매칭
instanceOf : 객체가 특정 크래스(또는 인터페이스)의 인스턴스인지 확인하는 연산자.void printIfString(Object obj) {
if (obj instanceof String) {
String s = (String) obj; // 안전하게 형변환
System.out.println("문자열: " + s);
} else {
System.out.println("String이 아님");
}
}
Switch Expression : 간결하고 직관적으로 변경switch문은break 필수fall-through(의도치 않은 코드 실행)의 문제가 이었으나String result;
switch(day) {
case "MON":
result = "월요일";
break;
case "TUE":
result = "화요일";
break;
default:
result = "기타";
}
Switch를 값을 반환하는 표현식으로 사용하게 됨break 대신 ->, 여러 case를 한 줄에 합칠 수 있음String result = switch(day) {
case "MON" -> "월요일";
case "TUE" -> "화요일";
default -> "기타";
};
Text Blocks : 글자 쓰기 편해짐. 가독성도 좋아지고
Sealed Classes : 상속 가능한 클래스를 제한하여 의도하지 않은 확장성을 막아 안정성을 강화
Shenandoah GC: 저지연 가비지 컬렉터 추가, 서버 환경에서의 성능 개선.
→ LTS(Long Term Support): Java 8 이후 오랜만의 장기 지원 버전, 최신 코드 표준.