오늘 이거 알았네요/Java
[Java] Int야 아니면 Integer야
로그관리자
2023. 3. 16. 19:20
728x90
Int와 Integer 언제 어떤 걸 사용하는 게 좋을까
Int
Primitive Type(원시 타입)
→ int, char, boolean... 등 실제 값을 저장하는 공간
기본 값이 존재하기 때문에 null값을 저장할 수 없다.
제네릭 타입에서 사용할 수 없다.
스택 영역에 저장된다.
→ 메모리 효율과 접근 속도 면에서 좋다.
Integer
Boxed Primitive Type(Wrapper 클래스)
→ 기본 타입의 데이터를 객체로 포장해 주는 클래스
null을 저장할 수 있다 (따라서 SQL연동시 편리하다.)
제네릭 타입에서 사용할 수 있다.
힙영역에 저장된다.
그래서 어떤 걸 쓰는게 좋을까
null값을 저장/ 반환해야 하는 경우 → Boxed Primitive Type
그 외의 경우 → Primitive Type
왜?
Primitive Type이 효율성이 우세하다.
Boxed Primitive Type은 비교연산에서 실수할 가능성이 있다.
→ 값을 비교하는 것이 아닌 주소(레퍼런스)를 비교하기 때문
비교연산 실수 예시
public class AA {
public static void main(String[] args) {
Integer num1 = 127;
Integer num2 = 127;
System.out.println(num1 == num2);
}
}
// true
왜 true 인가?
Boxed Primitive Type은 자주 사용되는 범위에 한해 캐시를 가지고 있기 때문에 이미 저장되어있는 객체를 반환
그러면 레퍼런스가 같기 때문에 '같다'라고 인식을 하게 된다.
728x90