Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 스프링 배치
- MSA
- JPA
- spring boot 4.0.0
- java 정렬
- spring boot 4.x.x
- Spring Boot 4.0
- 디자인 패턴
- spring batch
- 알고리즘
- spring cloud
- java21
- TypeScript
- 생산자 소비자 패턴
- Spring Cloud Netfilx Eureka
- 타입스크립트
- 스레드
- zipkin
- Java
- spring boot 3.x.x
- 키클락
- thread
- Resilinece4j
- 멀티스레드
- saga pattern
- Spring Boot Actuator
- spring boot
- 디자인패턴
- 배치
- 사가 패턴
Archives
- Today
- Total
PSD( Private-Self-Development )
JAVA 17 변경점 본문
JAVA 17의 경우 코드를 예쁘고 간결하게 줄여주는 문법이 많이 등장하였다.
1. Record 추가
기존 단순 데이터 전송용 객채(DTO) 를 만들기 위해서는
Lombok 이나 기본적인 코드들을 많이 작성하여 생성해야 했음.
이를 Record 를 사용하여 단순하게 대체할 수 있다. (단, 불변 객체이다)
// 기존
public class UserDto {
private final String name;
private final int age;
public UserDto(String name, int age) {
this.name = name;
this.age = age;
}
// Getter, toString, hashCode 등
}
// record
public record userDto(String name, int age){}
2. Text Block 추가
지저분하게 사용할 수 밖에 없던 문자열을 이제는 그나마 깔끔하게 사용 할 수 있다.
// 기존
String json = "{\n" +
" \"name\": \"test\",\n" +
" \"job\": \"Developer\"\n" +
"}";
String json = """
{
"name": "test",
"job": "Developer"
}
""";
3. 값을 리턴하는 Switch 문 추가
// 기존
String result;
switch (day) {
case MONDAY:
case FRIDAY:
result = "Working";
break;
default:
result = "Unknown";
}
// 신규
String result = switch (day) {
case MONDAY, FRIDAY -> "Working";
default -> "Unknown";
};
4. instanceof 의 형변환 자동화 추가
// 기존
if (obj instanceof String) {
String s = (String) obj; // 무조건 캐스팅 한번 해줘야함
System.out.println(s.length());
}
// 신규
if (obj instanceof String s) { // 바로 변수로 변환
System.out.println(s.length());
}
5. NullPointerException 에러 로그 상세화
기존에는 user.getAddress().City().getName() 에서 에러가 발생하면 정확이 어디에서 발생한 에러인지 알 수 없었다.
이제는 기본적으로 user.getAddress().City() 에서 에러가 발생 했다! 와 같이 상세 표시된다.
6. Stream.toList() 추가
기존 : .collect(Collectors.toList())
신규 : .toList() (단, 불편객체를 리턴한다)
'Backend > JAVA' 카테고리의 다른 글
| JAVA 21 변경점 (0) | 2026.01.27 |
|---|---|
| JAVA 11 변경점 (0) | 2026.01.27 |
| JAVA 8 변경점 (0) | 2026.01.27 |
| 가비지 컬렉션(Garbage Collection) (0) | 2023.07.12 |
| 생성자 주입을 사용하는 이유 (0) | 2023.01.30 |