주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 자바는 클래스와 인터페이스의 메타 데이터를 java.lang 패키지에 소속된 Class 클래스로 관리합니다. 여기서 메타 데이터란 클래스의 이름, 생성자 정보, 필드 정보, 메서드 정보를 말합니다. 1. Class 객체 얻기 : getClass(), forName() 프로그램에서 Class 객체를 얻기 위해서는 Object 클래스가 가지고 있는 getClass() 메서드를 이용하면 됩니다. Object는 모든 클래스의 최상위 클래스이므로 모든 클래스에서 getClass() 메서드를 호출할 수 있습니다. getClass() 메서드는 ..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 자바 프로그램은 운영체제상에서 바로 실행되는 것이 아니라 JVM 위에서 실행됩니다. 따라서 운영체제의 모든 기능을 자바 코드로 직접 접근하기란 어렵습니다. 하지만 java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있습니다. 즉, 프로그램 종료, 키보드로부터 입력, 모니터 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로퍼티 읽기, 환경 변수 읽기 등이 가능합니다. System 클래스의 모든 필드와 메서드는 정적(static) 필드와 정적(static) 메서드로 구성되어 있습니다. 1..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. Object와 유사한 이름을 가진 java.util.Objects 클래스는 객체 비교, 해시 코드 생성, null여부, 객체 문자열 리턴 등의 연산을 수행하는 정적 메서드들로 구성된 Object의 유틸리티 클래스입니다. 다음은 Object 클래스가 가지고 있는 정적 메서드들입니다. 리턴 타입 메서드(매개 변수) 설명 int compare(T a, T b, Comparator c) 두 객체 a와 b를 Comparator를 사용해서 비교 boolean deepEquals(Object a, Object b) 두 객체의 깊은 비교(배열의 ..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않으면 암시적으로 java.lang.Object 클래스를 상속하게 됩니다. 따라서 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스입니다. Object 클래스는 필드가 없고, 메서드들로 구성되어 있습니다. 이 메서드들은 모든 클래스가 Object를 상속하기 때문에 모든 클래스에서 사용할 수 있습니다. 1. 객체 비교 : equals() 다음은 Object의 equals() 메서드입니다. public boolean equals(Object obj) { ..