IT/Java

자바 Object 클래스, String, ==, equals

노마드오브 2018. 7. 23. 21:27

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()의 끝


}




출력결과