> Java > java지도 시간 > Java의 정수 래퍼 개체가 -128과 127 사이에서만 공유되는 이유는 무엇입니까?

Java의 정수 래퍼 개체가 -128과 127 사이에서만 공유되는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-26 14:54:09
원래의
584명이 탐색했습니다.

Why are Java's Integer Wrapper Objects Shared Only Between -128 and 127?

정수 래퍼 객체: -128~127 범위 내의 공유 인스턴스

Java의 래퍼 객체는 기본 데이터 유형과 객체 사이에 중요한 연결을 제공합니다. 그러나 정수 값의 박싱에서 특이한 동작이 관찰되었습니다. 인스턴스는 -128에서 127 사이에서만 공유되는 것으로 보입니다.

다음 코드를 고려하세요.

Integer integer1 = 127;
Integer integer2 = 127;
System.out.println(integer1 == integer2);  // outputs "true"
로그인 후 복사

이 경우 ==와 비교할 때 "true"가 출력되는 것으로 알 수 있듯이 정수1과 정수2에는 동일한 인스턴스가 할당됩니다. 그러나 값이 이 범위를 초과하면 다른 동작이 나타납니다.

Integer integer1 = 128;
Integer integer2 = 128;
System.out.println(integer1 == integer2);  // outputs "false"
로그인 후 복사

이러한 현상은 왜 발생합니까?

JLS(Java 언어 사양)에 따르면 다음과 같이 구체적으로 명시되어 있습니다. "특정 공통 가치는 항상 구별할 수 없는 개체로 분류됩니다." 이 범위는 "u0000~u007f 범위의 바이트 또는 문자, 또는 -128~127(포함) 사이의 int 또는 짧은 숫자"로 정의됩니다.

이 동작에 대한 정당성은 다음 항목에 설명되어 있습니다. JLS는 "가장 일반적인 경우 특히 소형 장치에서 과도한 성능 저하를 초래하지 않고 원하는 동작이 되도록 보장"하는 것입니다. 공유 인스턴스 동작을 공통 값 범위로 제한함으로써 Java는 성능과 예상 동작 간의 균형을 유지합니다.

위 내용은 Java의 정수 래퍼 개체가 -128과 127 사이에서만 공유되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿