조작부호==대상과의 equals() 방법
2115 단어 jdk
두 개의 조작원이 같은지 비교하는데 이 두 조작원은 기본 유형일 수도 있고 인용 유형일 수도 있다.
작업원이 인용 형식 변수일 때, 이 두 인용 변수는 모두 같은 대상을 인용해야 결과가true가 된다.
Integer int1 = new Integer(1);
Integer int2 = new Integer(1);
Integer int 3 = int1; //int3 int1
int[] arr1 = new int[1];
int[] arr2 = new int[1];
int[] arr3 = arr1; //arr3 arr1
System.out.println(int1==int2); // false
System.out.println(int1==int3); // true
System.out.println(arr1==arr2); // false
System.out.println(arr1==arr3); // true
참고: 참조 유형 변수를 비교할 때 "=="양쪽의 변수는 선언된 유형이 같은 유형이거나 상속 트리의 같은 상속 분기에 있어야 하며 그렇지 않으면 컴파일 오류가 발생합니다.
예를 들어 Person 클래스는 부모 클래스이고 Student 클래스, Teacher 클래스는 모두 Person 클래스를 직접 계승한다.
Student s = new Student();
Teacher t = new Teacher();
System.out.println(s==t);
컴파일 오류.
Person s = new Student();
Person t = new Teacher();
System.out.println(s==t);
성명 형식이 같기 때문에 컴파일링이 통과되었지만, 실행할 때 형식이 다르고, 실행할 때 오류가 발생했습니다.
2. 대상의 equals () 방법
equals () 방법은 Object 클래스에 정의된 방법입니다. 먼저 소스 코드를 살펴보겠습니다.
public boolean equals(Object obj) {
if(this==obj) return true;
else return false;
}
조작부호 '==' 의 사용법과 같다는 것을 알 수 있다. 매개 변수obj가 인용한 대상이 현재 대상과 같은 대상일 때true를 되돌려주고, 그렇지 않으면false를 되돌려준다.
그러나 JDK 중에는 Object의 equals () 방법을 덮어쓰는 클래스가 있습니다. 두 대상의 유형이 일치하고 내용이 일치하면true로 돌아갑니다.
이러한 종류는 다음과 같다:java.io.File 、java.util.Date 、java.lang.String, 포장 클래스(예를 들어java.lang.Integer,java.lang.Double 등).
Integer int1 = new Integer(1);
Integer int2 = new Integer(1);
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(int1==int2); // false
System.out.println(int1.equals(int2)); // true
System.out.println(str1==str2); // false
System.out.println(str1.equals(str2)); // true
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
2022년 3월 21일 TIL1. JVM & JDK JVM JRE 자바 실행 환경의 약자로 자바 프로그램을 실행하기 위한 도구들이 들어있으며 JVM이 이 안에 포함된다 JDK JRE + 개발툴 javac는 컴파일 명령어 HelloWorld.cl...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.