본문 바로가기

닷컴's_열공/JAVA

형변환 Integer.parseInt와 Integer.valueOf의 차이점

초보인 입장에선 좀 구분이 애매했네요.

public class Ang{
public static void main (String args[]){

int A;
int B;
float C;
String a = "3";
String b = "4";
A = Integer.parseInt(a);
B = Integer.parseInt(b);
C = A*A+B*B;
System.out.println("C :"+Math.sqrt(C));
}
}

위에 소스가 맞는 소스이며 이 소스를 valueOf를 사용해 버리면 에러 발생

차이가 나는 이유는 아래와 같다.

A=Integer.parseInt(a);
B=Integer.parseInt(b);

=> 리턴되는 반환값은 static int 값이다.

A = Integer.valueOf(a);
B = Integer.valueOf(b);

=> 리턴되든 반환값은 integer class의 객체값으로 오브젝트 형이 반환된다.

따라서 위에 소스에서는 parseInt를 사용해서 처리해야 한다.