Integer의 equals 방법
1598 단어 배우다
Integer 메소드 소스:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
비교의 대상을 Integer 유형으로 볼 수 있고, 그렇지 않으면 int 기본 유형으로 바꾸어 ==로 비교하면 비교가 수치입니다.그러니까 특별한 걸로.
코드 테스트:
Integer q=300;
Integer w=300;
Integer e=100;
Integer f=100;
if (q==w){
System.out.println(" == **********"+"q w "+"***********");
}
if (e==f){
System.out.println(" == **********"+"e f "+"***********");
}
if(q==300){
System.out.println(" == **********"+"q 300 "+"***********");
}
if(q.equals(w)){
System.out.println(" equals **********"+"q w "+"***********");
}
if(e.equals(f)){
System.out.println(" equals **********"+"e f "+"***********");
}
결과 출력:
==**********e 및 f 일치 성공*************=******q 및 300 일치 성공***************equals**************q 및 w 일치 성공********************equals********** e 및 f 일치 성공************************
q와 w의 첫 번째 "= ="일치가 성공하지 못했다는 것을 발견할 수 있어야 한다.
자료를 찾아보면 Integer에 캐시 그룹이 있다는 것을 알 수 있다. 즉, -128<=value<=127이다. 모두 캐시 그룹에서 Integer 대상을 얻는다.테스트 중인 q와 w는 모두 캐시 값을 초과하여 new의 새로운 대상이기 때문에 ==일치하지 않습니다.그래서 우리는 Integer의 "=="방법이 주소를 비교하는 것을 이해하기 어렵지 않다.Integer의 equals 방법은 이런 문제가 없고 직접적인 비교이다.
따라서 Integer를 사용하여 비교할 때 캐시 배열의 영역을 초과했는지 여부를 구분합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Hive 설치 구성 시작 시 발생하는 문제 및 해결 방법이 문제가 발생했을 때 환경 변수 하나만 추가하면 해결할 수 있다. export HADOOP_USER_CLASSPATH_FIRST=true 구현 단계: bashrc를 열면 export HADOOP_USER_CLASS...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.