[ 출처 : http://www.androider.co.kr/apps/board/view.do?tablecode=1279955569360 ]
JAVA 5.0 이 발표되면서 VM의 성능 향상, Class Data Sharing에 따른 어플리케이션의 시작 시간이 단축되고 Garbage Collector 의 성능이 향상되었다고 한다. 어쨋든 우리는 개발자의 측면에서 언어 스펙이 어떻게 변화될 것인가에 대해 알아볼 것이므로 아래의 항목을 살펴보며 5.0에서 변화된 것들을 파악해보자.
1. Generics의 사용
- 개념 : 타입에 대한 추상성을 제공하여 클래스와 메소드의 동작에 대한 타입 제약을 기술하기 위한 수단(Collection에서 유용)
- 특징 : 특정한 타입만이 들어갈 수 있도록 직관적인 명시, 코드의 간결함
- 장점 : 컴파일시의 Type Check 가능 (빈번하게 발생되는 형변환 에러를 방지함)
위와 같이 선언시의 타입을 명시함으로써 타입에 대한 컴파일 시점의 파악이 용이하게 된다.
2. Enhanced for loop
- 향상된 for loop 문을 제공함으로써 Iterator를 생성하거나 카운터 변수의 시작과 끝 상태를 계산할 필요 없이 콜렉션을 반복할 수 있게 해준다
3. Autoboxing / Unboxing
- Autoboxing은 Primitive타입과 Wrapper객체 사이의 변환을 자동으로 처리해주는 기능을 말한다.
4. Typesafe Enums
- type safe한 열거형 상수이다.
- 자체가 클래스이고, 따라서 클래스의 모든 특징을 가진다.
5. Varargs
- 가변길이 인수(Type 만 같다면 동적으로 인수를 받을 수 있다)
6. 기타
- Static Import : 클래스명의 사용없이 static 멤버 변수와 static 멤버 함수를 접근할 수 있다.
- 소스코드의 가독성은 떨어지므로 개인적으로는 권장하지 않는다.
- Annotation : 프로그램의 일부가 아닌 해석 데이터형의 개념을 제공해준다. 선억적 프로그래밍 모델을 지원하기 위한 방법인데 프로그래밍 언어의 해석단계에서 내장 주석처럼 인식하게 된다.
중요한 개념이므로 다른 강좌를 통해 다시 파악해보도록 하자.
'Java' 카테고리의 다른 글
[Java] 오픈소스 정리 (0) | 2011.07.25 |
---|---|
[Java] Java Performance Tip 1.1 (0) | 2011.07.18 |
[Java] 단위테스트, Junit (0) | 2011.07.13 |
[Java] RMI(Remite Method Invcation) (0) | 2011.07.07 |
[Java] 개발자가 놓치기 쉬운 자바의 기본 원리 (0) | 2011.06.27 |