활동/호기심

Integer은 어떨 때 사용하는가 (내가 봐도 정리 깔끔)

ByeongJun 2023. 9. 1. 15:57
반응형

Integer

Java 프로그래밍 언어에서 제공하는 클래스로, 정수 값을 나타내기 위한 래퍼(wrapper) 클래스

 

  1. Null 값을 포함해야 할 때: 기본 데이터 타입인 int는 null 값을 가질 수 없다.
    하지만 Integer 클래스는 null을 가질 수 있어서, 정수 데이터와 null을 함께 다룰 때 유용하다.
  2. 컬렉션의 일부로 사용할 때: Java의 컬렉션 프레임워크는 객체만 저장할 수 있기 때문에, int 타입의 값을 직접 저장하기 어렵다. Integer 객체는 컬렉션 내에 저장하고 다루는 데 유용하다.
  3. 제네릭(Generic) 타입으로 사용할 때: 제네릭을 사용하면 다양한 데이터 타입을 일반화하여 사용할 수 있다.
    Integer는 제네릭 타입으로 사용할 때 많이 활용된다.
  4. 메서드 시그니처의 일부로 사용할 때: 메서드의 매개변수나 반환값으로 int 대신 Integer를 사용하여 null을 허용하는 정수를 나타낼 수 있다.
  5. 정수 연산 결과를 객체로 다룰 때: Integer 객체를 사용하면 연산 결과를 객체로 감싸서 다룰 수 있다.
    예를 들어, Integer 객체로 연산 결과를 계산하고 컬렉션에 저장할 수 있다.

Integer 클래스는 객체로 감싸기 때문에 int 보다 메모리 사용 및 성능 면에서 약간의 오버헤드가 발생할 수 있다.

따라서 성능이 중요한 경우, int를 사용하는 것이 더 적합할 수도 있겠다.

 

 

 

 

 

다음은 Integer 클래스를 사용하는 예시이다. 

public class IntegerExample {
    public static void main(String[] args) {
        Integer num1 = new Integer(10); // Creating Integer object
        Integer num2 = 20; // AutoBoxing
        
        int value1 = num1.intValue(); // Converting Integer to int
        int sum = num1 + num2; // AutoUnboxing and addition
        
        System.out.println("num1: " + num1);
        System.out.println("num2: " + num2);
        System.out.println("value1: " + value1);
        System.out.println("sum: " + sum);
    }
}

 

더보기
  • num1: 10 : num1은 Integer 객체로 생성되었으며, 값은 10
  • num2 : 20: num2는 AutoBoxing을 통해 Integer 객체로 생성되었으며, 값은 20
  • value1 : 10: num1의 값을 intValue() 메서드를 사용하여 int로 변환하여 value1 변수에 저장
  • sum : 30: num1과 num2는 자동 언박싱을 통해 int로 변환되고, 두 값이 더해져서 sum 변수에 저장

 


Integer num1 = new Integer(10); // Integer 객체 생성, 값은 10
int value1 = num1.intValue(); // num1 객체의 정수 값(10)을 추출하여 value1에 저장

 

 int value1 = num1.intValue()

Integer 객체인 num1의 값을 int로 변환하는 코드이다.

 

Integer 클래스는 정수 값을 객체로 래핑한 것이기 때문에 

때로는 원래의 기본 데이터 타입인 int로 변환해야할 때가 있다. 

 

intValue() 메서드는 Integer 객체를 int 값으로 변환하는데 사용하며, 

이 메서드는 Integer 객체 내부의 정수 값을 추출해 반환한다. 

 

 

 

첫 번째 줄에서 Integer num1 = new Integer(10);은 Integer 클래스의 객체 num1을 생성하고,
이 객체에 10이라는 정수 값을 할당한다. 이것은 Integer 객체 안에 정수 10을 감싸서 저장하는 역할을 한다.

 

두 번째 줄에서 int value1 = num1.intValue();은 num1 객체에서 내부적으로 저장된 정수 값을 추출하여

value1이라는 기본 int 변수에 저장합니다. 이렇게 하면 value1은 num1 객체의 정수 값인 10을 가지게 된다.

 

결과적으로,  Integer num1 = new Integer(10); 과  int value1 = num1.intValue();  두 줄의 코드는 같은 정수 10을 다루고 있지만, 하나는 Integer 객체로 감싸서 다루고 다른 하나는 기본 int로 다루는 차이가 있다. Integer 객체를 사용하면 객체 지향적인 특성과 null을 다룰 수 있으며, 기본 int는 메모리 사용과 성능 면에서 더 경제적이다.

반응형