JAVA 7에서의 중요한 업데이트와 기능들을 정리하였다.
- 언어 개선 프로젝트(Project Coin)
- 이진 리터럴과 숫자 리터럴의 밑줄 사용 : 숫자를 더 쉽게 읽을 수 있도록 밑줄("_")을 사용하여 숫자를 구분할 수 있게 되었음
- 다중 예외 처리 : 아래와 같이 하나의 catch 블록에서 여러 예외를 처리할 수 있게 되었음. 이를 통해 코드의 중복을 줄일 수 있음
try {
// try 구문 안
} catch( ExceptionA | ExceptionB e ) {
// 예외 처리 로직이 들어갈 곳.
}
- 타입 추론의 개선(diamond 연산자 => "<>") : 제너릭 인스턴스 생성 시 컴파일러가 인수의 타입을 추론할 수 있게 하여 코드를 간결하게 할 수 있게 되었음
// jdk 7 이전 : 선언시에도 제네릭에 타입을 명시해야함.
List<Integer> list = new ArrayList<Integer>();
Map<String, List<String>> map = new HashMap<String, List<string>>();
// jdk 7 이후(타입추론) : 다이아몬드 연산자 사용으로 컴파일러가 알아서 추론한다.
List<Intger> list = new ArrayList<>();
Map<String, List<String>> map = new HashMap<>();
( 소스 출처 : cateto.log )
- try-with-resource 문 : 자동으로 리소스를 정리할 수 있는 구문이 추가되어 리소스를 효율적으로 관리할 수 있게 되었음
// 자원은 try() 괄호 안에 선언되어있어야하고, 해당 자원 클래스가 AutoCloseable 인터페이스를 구현해야함.
try(BufferedReader br = new BufferedReader(new FileReader("./test.txt"))) {
// try 내부 로직
} catch( IOException e ) {
// 예외 처리 로직이 들어갈 곳.
}
- 문자열 switch 문 : switch 문에서 문자열을 직접 사용할 수 있게 되어 프로그래밍이 편리해짐
String str = "TEST2";
switch(str) {
case "TEST1": break;
case "TEST2": break;
default: break;
}
- JAVA Virtual Machine(JVM) 개선
- Java Virtual Machine 지원: invoke dynamic 명령어가 추가되어 동적 언어의 성능이 개선되었음. 이는 JVM에서 스크립팅 언어의 실행 성능을 향상시키기 위한 변경임.
- 병렬 작업에 대한 라이브러리 개선
- Fork/Join Framework : 병렬 작업을 쉽게 작성할 수 있도록 설계된 프레임워크. 이는 대규모 처리를 위한 효율적인 병렬성을 제공함
- 입출력 및 네트워킹 개선
- New File System API(NIO.2) : 파일 시스템 관리를 위한 새로운 API가 추가되어, 파일 이벤트를 감지하고, 심볼릭 링크를 처리하며, 파일 시스템의 다양한 속성을 보다 쉽게 접근할 수 있음
- 보안 기능 강화
- 업그레이드된 암호화 기능 : 새로운 암호화 알고리즘과 기능이 추가되어 JAVA의 보안성이 강화되었음
- 국제화 및 지역 설정 개선
- 지원 언어 및 스크립트 확장 : 추가적인 유니코드 지원과 함께, 여러 새로운 언어와 스크립트에 대한 지원이 확대되었음