Tech Stock logo Tech Stock

코드상으로는 같아 보인다


package codeplay;

public class ValueofAndtoString {

	public static void main(String[] args) {

		String str = "2";

		int a = Integer.parseInt(str);

		int b = Integer.valueOf(str);

		System.out.println(a);
		System.out.println(b);

	}

}

2
2

그런데 내부를 살펴보면 반환형이 다르다

Integer.class 를 보면

 public static int parseInt(String s) throws NumberFormatException {
        return parseInt(s,10);
    }

 public static Integer valueOf(String s) throws NumberFormatException {
        return Integer.valueOf(parseInt(s, 10));
    }

parseInt의 경우는 int형. 즉 프리미티브 타입으로 반환하고

valueOf의 경우는 Integer형(뤱퍼객체:리퍼런스타입) 으로 반환한다

당연히 int형으로 반환하는 parseInt가 빠르다

적절하게 사용해주면 좋을듯 !!


자바에서의 프리미티브 타입

  • byte, short, int, long, char : 정수타입
  • float, double : 부동소수점 타입
  • boolean

자바에서의 리퍼런스 타입

  • 클래스
  • 인터페이스
  • 배열타입
  • 열거타입