ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.