결론
Integer.valueOf() -> return Integer
Integer.parseInt() -> return int
wrapper클래스로 반환하냐, 기본 자료형으로 반환하냐 차이..
아래는 두 메소드에 관해서 추가로 정리한 것들이다.
추가로 두 메소드 모두 두번째 인자로 진법(radix)를 받을 수 있다.
radix를 따로 지정하지 않을 경우, parseInt메소드 안에서 radix를 10으로 받은 parseInt메소드를 호출하여 casting한다.
Integer.parseInt("1F", 16) // 31
radix가 지정된 valueOf의 경우, radix가 지정된 parseInt를 먼저 호출한 후, 이를 valueOf의 인자로 받아서 리턴한다.
Integer.valueOf("7", 10) // 7
두 메소드 모두 정수화 시킬 수 없는 문자열에 대해서
NumberFormatException을 던진다.
radix가 지정된 경우, 해당 n진법의 n을 넘어가는 수에 대해서 NumberFormatException을 던진다.
System.out.println(Integer.parseInt("F", 16)); // 16
System.out.println(Integer.parseInt("G", 16)); // NumberFormatException