>  기사  >  Java  >  Java 튜토리얼 - Int와 Integer의 차이점

Java 튜토리얼 - Int와 Integer의 차이점

高洛峰
高洛峰원래의
2016-12-02 16:22:391925검색

먼저 int와 Integer의 차이점에 대해 이야기해 보겠습니다.

int는 기본 데이터 유형이고 Integer는 int의 래퍼 클래스입니다. 참고: 후자의 유형은 "class"입니다. 예를 들어 제네릭을 사용하면 Listc0f559cc8d56b43654fcbe4aa9df7b4a numList;

int의 초기 값은 0이고 정수는 null입니다.

아래의 구체적인 예를 보세요:

package syswar.cc;

public class IntegerCompare {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Integer a1 = 2;
        Integer a2 = 2;

        Integer b1 = 150;
        Integer b2 = 150;

        Integer c1 = new Integer(2);
        Integer c2 = new Integer(2);

        Integer d1 = new Integer(150);
        Integer d2 = new Integer(150);

        System.out.println("a1==a2?" + (a1==a2));
        System.out.println("b1==b2?" + (b1==b2));
        System.out.println("c1==c2?" + (c1==c2));
        System.out.println("d1==d2?" + (d1==d2));
    }

}

실행 결과:

a1==a2?true
b1==b2?false
c1==c2?false
d1==d2?false>

왜 이런 결과가 나오나요? 먼저 두 그룹 a와 b를 비교해 보겠습니다. Integer가 초기화되면 이러한 Integer 객체에 해당하는 int 값이 바이트 범위, 즉 [-128,127]에 있습니다.

Integer에 직접 int 값을 할당할 때 값 범위가 [-128,127]이면 Integer는 캐시에서 Integer 객체를 직접 검색합니다. 따라서 직접 할당한 int 값이 [-128,127]에 있는 경우에는 동일한 객체에 대한 Integer 객체.

new 메소드를 통해 얻은 Integer 객체는 힙에서 직접 할당된 객체이므로 특정 int 값이 무엇이든 == 판단 결과는 거짓입니다


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.