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": ~ }
-
tr
withresources 구문- 자동 리소스 닫기 기능(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 문법과 관련된 개선