-
nodeJS 개발자에서 다시 JAVA 개발자로, Java 9 ~ Java21 주요 변경사항들성장과정(dev)/Spring + Java + JPA 2024. 10. 24. 11:00
Java8 시절까지 java 개발자였는데 마지막으로 java로 개발한지 4년, 아주 많은 것이 바뀌었더라.
신규 기능 중 주요 기능들만 요약해봤다.
1. var 키워드 (Java 10)
- 지역 변수 타입 추론을 가능하게 하여, 변수를 선언할 때 타입을 생략하고도 컴파일러가 자동으로 타입을 추론
var list = new ArrayList<String>();
2. HttpClient API (Java 11)
- 새로운 HTTP 클라이언트 API로, HTTP 요청을 더 간단하게 처리할 수 있습니다. 비동기 요청과 HTTP/2, WebSocket 지원도 포함
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://example.com")) .build();
3. String API 개선 (Java 11)
- String 클래스에 유용한 메서드들이 추가
- isBlank(): 공백 문자열 확인
- lines(): 줄 단위로 문자열 분리
- strip(): 앞뒤 공백 제거
- repeat(): 문자열 반복
4. Switch Expressions (Java 14, 정식 도입은 Java 14)
- switch 문을 표현식으로 사용할 수 있어 간결
int result = switch (day) { case MONDAY -> 1; case TUESDAY -> 2; default -> 0; };
5. Records (Java 16)
- 간단한 불변 데이터 클래스를 생성하는 기능으로, 데이터 전송 객체를 쉽게 만들 수 있음
public record Point(int x, int y) {}
6. Pattern Matching for instanceof (Java 16)
- instanceof 사용 시 자동으로 타입 캐스팅이 가능
if (obj instanceof String s) { System.out.println(s.toLowerCase()); }
7. Sealed Classes (Java 17)
- 클래스 상속을 제한하는 기능으로, 특정 클래스들만 상속을 허용
public sealed class Shape permits Circle, Square {}
8. Virtual Threads (Java 19, 정식 도입은 Java 21)
- 가상 스레드로, 경량화된 쓰레드를 생성할 수 있으며, 대규모 동시성 작업에 최적화되어있음
'성장과정(dev) > Spring + Java + JPA' 카테고리의 다른 글
데이터베이스 데드락, 공유락, 베타락: 꼭 알아야 할 실무 필수 개념 (JPA) (0) 2024.12.13 [intellij] jpa + gradle + junit4 테스트 중 에러발생 (0) 2020.11.26 [jpa] mariaDB 연동 (0) 2020.11.26 log4j sql로그 가독성 높이기 (0) 2020.09.18 log4j 설정 (0) 2020.09.17