Programming
No. | 133 | ||||
Name. | swindler | ||||
Subject. | JDK 1.5에 추가된 기능 | ||||
Main Cate. | Java | ||||
Sub Cate. | |||||
Date. | 2005-05-28 11:08 | ||||
Hit. | 4991 (211.109.70.164) | ||||
File. | |||||
1. for()문의 기능 확대 for 루프에서 기존의 Iterator의 사용이 생략된 형식으로 코드를 작성할수있습니다. [jdk1.4] ArrayList array = new ArrayList(); Iterator iter = array.iterator(); while(iter.hasNext()){ String str = (String)iter.next(); System.out.println(str); } [jdk1.5] ArrayList array = new ArrayList(); for(Object o : array){ String str = (String)o; System.out.println(str); } [jdk1.4] String[] data = {"Apple", "Banana", "Tomato"}; for(int i=0; i<data.length; i++) { String str = data[i]; System.out.println(str); } [jdk1.5] String[] data = {"Apple", "Banana", "Tomato"}; for(String str : data) { System.out.println(str); } 2. Generics 기능추가 C++에서는 템플릿(Generics)이 존재하는데요. 이번에, 자바에서도 Collection 클래스에 템플릿 기능이 추가되었습니다. [jdk1.4] ArrayList array = new ArrayList(); Iterator iter = array.iterator(); while(iter.hasNext()){ String str = (String)iter.next(); System.out.println(str); } (아래처럼 컬렉션클래스에 형을 지정하므로써, 실행시에 캐스팅(casting) 이 불필요하게 되었습니다.) [jdk1.5] List<String> array = new ArrayList<String>(); Iterator<String> iter = array.iterator(); while(iter.hasNext()){ String str = (String)iter.next(); System.out.println(str); } 3. Autoboxing 기본형(int, float, double, short...)과 그기본형의 랩퍼 클래스 와의 변환이 간단히 이루어집니다. [jdk1.4] Integer x = new Integer(1); int y = x.intValue(); [jdk1.5] Integer x = 1; int y = x; 위에서 보는 것처럼 Autoboxing(기본형에서 그기본형의 랩퍼 클래스로 변환)이 손쉽게 이루어 집니다. [jdk1.4] ArrayList array = new ArrayList(); array.add(new Integer(1)); array.add(new Integer(2)); array.add(new Integer(3)); int nSum = 0; Iterator iter = array.iterator(); while(iter.hasNext()){ Integer i = (Integer)iter.next(); nSum = nSum + i.intValue(); } 위코드는 다음 과 같은 코드로 변환될수 있습니다. [jdk1.5] ArrayList array = new ArrayList(); array.add((Integer)1); array.add((Integer)2); array.add((Integer)3); int nSum = 0; Iterator iter = array.iterator(); while(iter.hasNext()){ Integer i = (Integer)iter.next(); nSum = nSum + i; } 아래는 Autoboxing과 Generic을 적용해서... [jdk1.5] ArrayList<Integer> array = new ArrayList<Integer>(); array.add(1); array.add(2); array.add(3); int nSum = 0; Iterator<Integer> iter = data.iterator(); while(iter.hasNext()){ Integer i = iter.next(); //int i = iter.next(); 위코드와 동일 nSum = nSum + i; } 아래는 Autoboxing과 Generic, for 확장 기능을 적용해서.. [jdk1.5] ArrayList<Integer> array = new ArrayList<Integer>(); array.add(1); array.add(2); array.add(3); int nSum = 0; for(Integer i : array) { nSum += i; } // 참고로 jdk1.5로 컴파일된 클래스 파일은 특별한 변환없이 jdk1.4에서도 실행된다고 합니다. 그외에도 GUI 쪽에선, 자바VM공유가 가능하다고 합니다. 자바 애플리케이션이 보다 성능이 향상되겠죠 ^^ [바로가기 링크] : http://coolx.net/cboard/develop/133 |
|||||
|
|||||
[Modify] [Delete] | [Reply] [List] |