4,564,851 th visitor since 2017.2.1 ( Today : 50 )
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



swindler ArrayList<String> al=new ArrayList<String>(); 2005-05-28
Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog