자바 Object 클래스, String, ==, equals
package test;
class ObjectTest /*extends Object*/ {
}
public class Test2 {
public static void main(String[] args) {
// Object : java.lang.Object
// 최상위 클래스, 모든 클래스는 Object 상속받음
// 클래스 공통적인 부분정의.
// 모든 클래스는 extends Object 생략
ObjectTest ot = new ObjectTest();
System.out.println(ot.getClass()); // 현재 객체의 런타임 클래스 정보를 리턴
System.out.println(ot);
System.out.println(ot.toString()); // 현재 객체에 대한 스트링(문자열) 표현을 리턴
// equals() 참조주소가 가리키는 객체의 내용(실제 객체의 기억장소)을 비교.
int a=10, b=10;
if (a == b) {
System.out.println("같다");
} else {
System.out.println("다르다");
}
// 스트링 리터럴은 리터럴 관리 테이블에 의해 관리됨
// 동일한 리터럴이 이미 있으면 그 리터럴에 주소를 그대로 사용.
String str1 = "안녕";
String str2 = "안녕";
if (str1 == str2) { // 참조 주소값 비교
System.out.println("문자열이 같다");
} else {
System.out.println("문자열이 다르다");
}
if (str1.equals(str2)) { // 내용 비교
System.out.println("문자열이 같다");
} else {
System.out.println("문자열이 다르다");
}
System.out.println("===================");
String str3 = new String("안녕");
String str4 = new String("안녕");
if (str3 == str4) { // 참조 주소값 비교
System.out.println("문자열이 같다");
} else {
System.out.println("문자열이 다르다");
}
if (str3.equals(str4)) { // 내용 비교
System.out.println("문자열이 같다");
} else {
System.out.println("문자열이 다르다");
}
} // main()의 끝
}