기본형 변수와 참조형 변수의 차이(feat.boxing, unboxing, "==", "equals")

hamonjamon·2022년 10월 10일
0

int (Primitive 자료형)

- 실제 값을 저장 장소로 갖는 자료형이다.
- 산술 연산이 가능하다.
- null값으로 초기화가 불가능하며, 0으로 초기화된다.

Integer (Wrapper 클래스, 객체)

- 실제 값이 아닌 객체의 주소를 저장하고 있는 객체형 변수로 참조형이다.
- Unboxing하지 않으면 산술 연산이 불가능하나, null값은 처리할 수 있다.
- null값 처리가 용이하여 SQL과 연동 시 처리가 효율적이다.

public static void main(String[] args) {
        Integer iA = new Integer(123);
        Integer iB = new Integer(123);

        int ia = (int) iA;              // 언박싱 (참조형 => 기본형)
        int ib = iB;                    // 오토 언박싱

        Integer iC = (Integer) 456;     // 박싱 (기본형 => 참조형)
        Integer iD = ia;                // 오토 박싱
    }



equals 메서드

비교하고자 하는 대상의 내용 자체를 비교한다.

==

비교하고자 하는 대상의 주소값을 비교한다.


    public static void main(String[] args) {
        String a = "aaa";
        String b = a;
        String c = new String("aaa");

        System.out.println(a.equals(b));        // 내용 비교    -> TRUE
        System.out.println(a == b);             // 주소값 비교  -> TRUE
        System.out.println(a == c);             // 주소값 비교  -> FALSE
        System.out.println(a.equals(c));        // 내용 비교    -> TRUE
        
        
        System.out.println(a);                  // aaa
        System.out.println(b);                  // aaa
        System.out.println(c);                  // aaa
    }


0개의 댓글