자바는 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것이 바로 java.lang
패키지이다. 여기서 lang
은 language
(언어)의 줄임말이다. 쉽게 이야기해서 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지를 뜻한다.
java.lang 패키지의 대표적인 클래스들
Object
: 모든 자바 객체의 부모 클래스String
: 문자열Integer, Long, Double
: 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class
: 클래스 메타 정보System
: 시스템과 관련된 기본 기능들을 제공java.lang
패키지는 모든 자바 애플리케이션에 자동으로 임포트(import
)된다. 따라서 임포트 구문을 사용하지 않아도 된다.
자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object
클래스이다.
package lang.object;
// 부모가 없으면 묵시적으로 Object 클래스를 상속받는다.
public class Parent {
public void parentMethod() {
System.out.println("Parent.parentMethod");
}
}
Object
클래스를 상속 받는다.
extends Object
코드를 넣어준다.extends Object
는 생략하는 것을 권장한다.Object
를 상속 받지 않는다.
extends Object
코드를 넣지 않는다.묵시적(Implicit) vs 명시적(Explicit)
묵시적 : 개발자가 코드에 직접 기술하지 않아도 시스템 또는 컴파일러에 의해 자동으로 수행되는 것을 의미
명시적 : 개발자가 코드에 직접 기술해서 작동하는 것을 의미
Parent
는 Object
를 묵시적으로 상속 받았기 때문에 메모리에도 함께 생성된다.