-
[Java] Integer.valueOf() 와 Integer.parseInt()의 차이Java 2021. 9. 23. 16:53반응형
1. 반환값이 다르다.
-Integer.parseInt: primitive.type의 int를 반환한다. (기본 자료형)
-Integer.valueOf: Wrapper Object인 Integer를 반환한다. ( 참조 자료형)int a = 42; int b = 42; Integer c = new Integer(42); Integer d = new Integer(42); if(a==b){ System.out.println("Success"); } if(c==d){ System.out.println("Success too"); }else{ System.out.println("They have different identity"); }
기본자료형은 값만 가지지만, 객체화된 자료형은 각각의 신원(identity)을 가진다.
즉 위의 코드에서
int a = 42, b = 42; 일때a==b는 같지만 c==d는 다를 수 있다는것
2. 기본 자료형은 int형 값을 가지기 때문에 산술연산을 할 수 있지만, 객체화 된 자료형은
Integer클래스를 받기 때문에 wrapper클래스->primitive자료형 을 해주지 않으면 산술연산을 할 수 없다.
하지만 기본 자료형과 달리 null값을 반환하기 때문에 SQL과 연동할 경우처리 용이
int a = null; // null값으로 초기화 할 수 없음
Integer b = null; // null값으로 초기화 할 수 있음
3.굳이 객체화된 자료형을 사용할 이유가 없다면 primitive 타입을 쓰는 것이 공간효율적인 측면에서 좋다.Integer의 사이즈 : 20byte
int의 사이즈 : 4byte
Integer는 언제 쓰는가 ?
첫째, null값으로의 처리가 유용하기 때문에 SQL과 연동할 경우 즉, DB를 사용해서 쿼리문을 짜줘야하는 경우에 유용하다.
둘째, ArrayList나 List등의 요소, 키, 값으로 사용할 때 이다.다시 말해서 ArrayList<int>는 안되지만 ArrayList<Integer>로 사용할 수 있다.
반응형'Java' 카테고리의 다른 글
[Java] 추상클래스 abstract (0) 2022.05.17 [Java] 열거형(Enum) (0) 2022.05.17 [Java] List/Map/Set 차이 (0) 2021.10.18 [Java] 배열 - Array (0) 2021.05.03 [Java] 조건,반복문 사용 - for, while, if (0) 2021.05.03