모든 클래스가 기본적으로 상속받는 Object 클래스의 주요 메소드입니다.
[ hashCode() ]
- 인스턴스가 저장된 힙 영역의 주소값을 해쉬값으로 변환해서 반환
- 서로 다른 인스턴스 또는 객체는 다른 주소에 저장돼 있으므로 다른 값 출력
package study.first;
public class Study {
public static void main(String[] args) {
Example a = new Example();
Example b = new Example();
System.out.println(a.hashCode());
System.out.println(b.hashCode());
}
}
class Example {
int a = 1;
}
[ getClass() ]
- 인스턴스가 가지고 있는 클래스 정보를 반환
- Class 타입(클래스의 정보만 가지고 있는 타입)의 인스턴스를 생성해서 반환
- 해당 인스턴스가 같은 클래스 타입인지 확인할 때 사용 가능
- 부모 클래스라도 클래스 이름이 다르기 때문에 비교하면 False
package study.first;
public class Study {
public static void main(String[] args) {
Example a = new Example();
Example b = new Example();
Parents d = new Parents();
Class c = a.getClass();
System.out.println(c); // Class 타입 인스턴스
System.out.println(a.getClass()); // 인스턴스 a의 클래스 정보
System.out.println(a.getClass() == b.getClass()); // true
System.out.println(a.getClass() == d.getClass()); // false
}
}
class Example extends Parents {
int a = 1;
}
class Parents {
int a = 1;
}
[ toString() ]
- 인스턴스가 가지고 있는 클래스 이름@16진수 해쉬코드 형태의 문자열 반환
- 해당 클래스의 유형과 주소값을 의미
- 인스턴스만 사용할 경우 인스턴스.toString() 메소드가 기본으로 컴파일됨
package study.first;
public class Study {
public static void main(String[] args) {
Example a = new Example();
// 두 개가 같은 결과
System.out.println(a);
System.out.println(a.toString());
}
}
class Example {
int a = 1;
}
[ equals() ]
- 두 객체의 메모리 주소값(해시값)을 비교해서 true/false 반환
package study.first;
public class Study {
public static void main(String[] args) {
// 같은 메모리 주소를 가리키는 참조변수
Example a = new Example();
Example b = a;
System.out.println(a.equals(b)); // true
// 다른 메모리 주소를 가리키는 별도의 인스턴스
Example c = new Example();
System.out.println(a.equals(c)); // false
}
}
class Example {
int a = 1;
}
'■ JAVA > Study' 카테고리의 다른 글
[JAVA] java.lang.StringBuilder (문자열) 주요 메소드 [2/2] (0) | 2021.02.25 |
---|---|
[JAVA] java.lang.StringBuilder (문자열) 주요 메소드 [1/2] (0) | 2021.02.25 |
[JAVA] 래퍼 클래스 (Wrapper Class) (0) | 2021.02.24 |
[JAVA] 배열 , Array (다차원배열, 배열문제 ) (0) | 2021.02.23 |
[JAVA] Java의 메모리 구조_기본 구조 (0) | 2021.02.17 |