Java7의 7가지 언어적 기능 개선 - asloud/dev_note01 GitHub Wiki

  • Binary 리터럴

    • 정수형 타입(byte, short, int, long)의 상수 표시 시 바이너리(2진수) 표기법 지원
    • 0b 0B 같은 prefix로 이진수를 표현
    byte aByte = (byte)0b00100001;
    int anInt2 = 0b101;
    long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L;
    
  • 문자열에 대한 switch 구문

    • switch 구문의 case 절에 문자열 사용 가능
     swicth(check) {
       case "CHOICE_1":
       ~
       case "CHOICE_2":
       ~
     }
    
  • trwithresources 구문

    • 자동 리소스 닫기 기능(Automatic Resources Management)
    • java.lang.AutoCloseable 인터페이시의 구현 클래스 사용 시 기능 제공
    • IO 스트림, JDBC, Socket 등에서 사용
    • finally 블록에서 close()를 명시적으로 하지 않고 자동으로 close() 메소드 호출
     try(PreparedStatement pstmt = conn.preparedStatement(sql)) {
         .... // pstmt 사용
     } chatch(SQLException e) {
         .... // 예외처리
     }
    
  • 여러 예외 동시에 잡아내기

    • 예외 처리 시 같은 처리를 여러 catch 블로에서 하지 않고 하나의 catch 블로에서 처리 지원
    • '|'로 여러 Exception을 하나의 catch문에서 처리, 중복된 예최처리 코드를 하나의 블록에서 처리
    try {
    
    } catch(AException | BException | CEception e) {
        ... // 예외처리
    }
    
  • 숫자 리터럴에 밑줄undersource(_) 넣어 읽기 편하게 구분하기

    • 숫자 리터럴에 밑줄(_)을 붙여 사용 가능
    • int num = 234_987;
    • 컴파일러가 컴파일 시 밑줄 제거
    • 사용자가 알아보기 쉽게하기 위함
  • 제네릭 문법과 관련한 타입 유추 - 다이아몬드 연산자

    • 젠릭 객체 생성 시 '<>' 사용하여 컴파일러가 타입 추론을 통하여 자동으로 타입을 채워주는 기능
    • 예 : List list = new ArrayList<>(); // <- 컴파일러가 타입추론으로 'String' 타입을 채워준다
  • varargs 문법과 관련된 개선

⚠️ **GitHub.com Fallback** ⚠️