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
- spring boot 4.x.x
- MSA
- 디자인 패턴
- java21
- 알고리즘
- 배치
- 스프링 배치
- spring boot
- spring batch
- Resilinece4j
- JPA
- Spring Boot Actuator
- spring cloud
- saga pattern
- 스레드
- 사가 패턴
- 멀티스레드
- 타입스크립트
- zipkin
- 키클락
- 생산자 소비자 패턴
- TypeScript
- Java
- spring boot 4.0.0
- java 정렬
- 디자인패턴
- spring boot 3.x.x
- Spring Cloud Netfilx Eureka
- thread
- Spring Boot 4.0
Archives
- Today
- Total
PSD( Private-Self-Development )
JAVA 11 변경점 본문
JAVA 11 은 개발 편의성 개선이 되었다.
1. 타입 추론(var) 추가
Javascript 에서 사용하던 var 와 비슷하지만 다르다.
동적 타입이 아닌 컴파일 시점에서 타입을 추론하여 고정한다.
단, 남발해서는 안된다( 어떤 타입인지 알아보기 힘들기 때문 )
우측 항이 정확히 알아보기 쉬운 상태에서만 사용하고
함수의 실행 결과 와 같이 해당 함수에 가서야 확인 가능해야하면 지양해야 한다.
// 기존
Map<String, List<UserDto>> usersMap = new HashMap<>();
// 타입 추론
var usersMap = new HashMap<String, List<UserDto>>();
2. 불변 컬렉션 팩토리 메서드 추가 (LIst.of)
// 기존
List<String> list = Arrays.asList("A", "B");
// list.add("C"); 에러 남 (하지만 set은 됨, 애매함)
List<String> list = List.of("A", "B");
Map<String, String> map = Map.of("K1", "V1", "K2", "V2");
Set<String> set = Set.of("A", "B");
// 불변 add, set 시도 시 에러 발생
3. String 클래스 관련 메서드 대량 추가
- isBlank(): 문자열이 비었거나 공백(" ")만 있는 경우 true.
- strip(): trim()보다 더 강력하게(유니코드 공백까지) 앞뒤 공백 제거.
- lines(): 문자열을 줄 단위 스트림(Stream<String>)으로 쪼개줌.
- repeat(n): 문자열을 n번 반복.
4. Files 클래스 개선
이제는 파일 내용을 읽거나 쓸 때 BufferedReader 열고 닫지 않아도 된다.
// 파일 읽기
String content = Files.readString(Path.of("file.txt"));
// 파일 쓰기
Files.writeString(Path.of("file.txt"), "Hello Java 11");
5. Interface 에 private 메서드 추가
JAVA 8 에서 추가된 Interface 에 default 메서드를 구현할 때 공통된 로직이 있어도
private 메서드를 구현 할 수 없어 로직을 중복하여 작성 해야 했으나 이를 개선
public interface Service {
default void methodA() {
common();
}
default void methodB() {
common();
}
private void common() {
System.out.println("중복 로직 처리");
}
}
'Backend > JAVA' 카테고리의 다른 글
| JAVA 21 변경점 (0) | 2026.01.27 |
|---|---|
| JAVA 17 변경점 (0) | 2026.01.27 |
| JAVA 8 변경점 (0) | 2026.01.27 |
| 가비지 컬렉션(Garbage Collection) (0) | 2023.07.12 |
| 생성자 주입을 사용하는 이유 (0) | 2023.01.30 |