PSD( Private-Self-Development )

JAVA 11 변경점 본문

Backend/JAVA

JAVA 11 변경점

chjysm 2026. 1. 27. 14:39

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