thals0 / TIL

📚 하루동안 공부한 내용을 기록하는 공간입니다.
0 stars 0 forks source link

int vs Integer #23

Closed thals0 closed 1 year ago

thals0 commented 1 year ago

int와 Integer는 모두 정수를 나타내는 자료형이지만, 차이점이 존재합니다.

int : 기본 자료형(primitive data type) 중 하나로, 32비트 크기의 정수를 나타냅니다. int는 값 자체를 나타내기 때문에 null을 가질 수 없으며, 기본값은 0입니다.

Integer : int를 객체로 감싸서 표현한 참조 자료형(reference data type)입니다. Integer는 null 값을 가질 수 있으며, 객체의 메소드를 사용할 수 있습니다. 또한, Integer는 int보다 메모리를 더 많이 사용합니다.

예를 들어, 다음과 같은 코드에서 int와 Integer의 차이를 확인할 수 있습니다.

int x = 10;
Integer y = 20;

System.out.println(x); // 10
System.out.println(y); // 20
System.out.println(y.toString()); // "20"

위 코드에서 int형 변수 x는 그 값 자체를 나타내기 때문에 바로 출력할 수 있습니다. 그러나 Integer형 변수 y는 객체이기 때문에, 출력하기 전에 toString() 메소드를 사용하여 문자열로 변환해야 합니다.

Java에서는 int와 Integer 간에 자동 형변환이 이루어지기 때문에, 두 자료형을 혼용하여 사용할 수 있습니다. 예를 들어, 다음과 같은 코드는 에러 없이 실행됩니다.

int x = 10;
Integer y = 20;

int z = x + y; // 30
Integer w = x + y; // 30

하지만 int와 Integer의 자료형이 다른 상황에서는 형변환을 명시적으로 해줘야 합니다.