1. Java 기본 데이터 유형 및 해당 캡슐화 클래스
Java 데이터 유형에는 기본 데이터 유형과 참조 데이터 유형이 포함되어 있습니다. 기본 데이터 유형에 해당하는 캡슐화 클래스가 도입되었습니다. 예를 들어 int 캡슐화 클래스는 Integer입니다.
온라인 교육 영상 공유: java 교육 영상
2. Java 자동 언박싱 및 자동 박싱
1. 자동 박싱
오토박싱은 실제로 기본 데이터 유형을 참조 데이터 유형(객체)으로 변환합니다.
2. 자동 언박싱자동 언박싱은 실제로 참조 데이터 유형을 기본 데이터 유형으로 변환하는 것입니다.
코드는 다음과 같습니다.
public static void main(String[] args) { Integer a = 1;//这里就用到了自动装箱;等同于Integer a = new Integer(1); int b = a - 1;//对象不能直接进行计算,所以这里有自动拆箱的操作,将a对象转换成基本数据类型,然后-1 System.out.println(a); System.out.println(b); }
인쇄 결과:
1 0
int는 기본 데이터 유형이고 Integer는 참조 데이터 유형입니다.
int 기본값은 0이고 Integer 기본값은 null입니다. int 유형은 직접 숫자 값을 저장합니다. 정수는 객체를 인스턴스화하고 객체의 주소를 가리켜야 합니다. 이렇게 생각하시나요? 사실, 둘 사이에는 몇 가지 세부적인 차이점이 있습니다. 다음과 같습니다public static void main(String[] args) { Integer a = new Integer(1); Integer b = new Integer(1); int c = 1; int d = 1; Integer e = 1; Integer f = 1; Integer g = 130; Integer h = 130; Integer i = new Integer(130); int j = 130; }
Integer의 valueOf 메서드는 다음과 같습니다.
public static Integer valueOf(int i) { //IntegerCache.low == -128 ;IntegerCache.high == 127 //当数值大于-128小于127时,进行缓存;否则重新new一个。 if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
답은 모두 동일합니다. 캡슐화된 클래스를 기본 데이터 유형과 비교할 때 Java는 자동으로 해당 클래스를 unboxing한 다음 값이 동일한지 비교하기 때문입니다.
요약: 1. 모두 캡슐화된 클래스이고 모두 new에서 파생되므로 확실히 동일하지 않습니다. 객체의 메모리 주소가 다르기 때문입니다. 2. 값이 -128~127 사이이면 모두 캡슐화된 클래스이고, 그렇지 않으면 동일하지 않습니다. 3. 패키지 클래스와 기본 유형을 비교하면 값이 동일한 한 동일하고, 그렇지 않으면 동일하지 않습니다. 캡슐화된 클래스와 기본 데이터 유형을 비교할 때 자동 언박싱 작업이 발생하기 때문입니다. 4. 값이 동일하면 모두 기본 데이터 유형입니다. 그렇지 않으면 동일하지 않습니다. 더 많은 관련 튜토리얼을 보려면 다음을 방문하세요.Java 시작하기
위 내용은 Java에서 int와 정수의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!