java.lang

java.lang 패키지는 Java 프로그래밍 언어의 핵심 기능들을 제공하는 기본 패키지로, Java 애플리케이션에서 자주 사용되는 클래스와 인터페이스들이 포함되어 있습니다. 이 패키지는 자동으로 Java 프로그램에 포함되므로 별도의 import 없이 사용할 수 있습니다.

// import 없이 System 클래스를 사용할 수 있음
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

1. 주요 클래스

Object

  • 모든 클래스의 최상위 부모 클래스입니다.

  • 객체의 생성, 비교, 해시, 문자열 표현 등 기본 기능을 제공합니다.

  • 주요 메서드: equals(), hashCode(), toString(), clone()

// Object는 자동으로 상속한다 extends Object 없어도 됨
public class Example extends Object {
    public void methodTest() {
        System.out.println("true = " + true);
    }
}

System

  • 표준 입력, 출력, 에러 스트림, 환경 변수, 현재 시간 및 메모리 상태 등에 접근할 수 있는 메서드를 제공합니다.

  • 주요 메서드: currentTimeMillis(), nanoTime(), gc(), exit().

String

  • 불변(immutable) 문자열을 나타내는 클래스입니다.

  • 다양한 문자열 조작 메서드를 제공합니다.

  • 주요 메서드: length(), substring(), charAt(), concat(), equals().

StringBuilderStringBuffer

  • 가변(mutable) 문자열을 지원하는 클래스입니다.

  • StringBuilder는 비동기 환경에서 빠른 성능을 제공하며, StringBuffer는 동기화가 필요할 때 사용됩니다.

  • 주요 메서드: append(), insert(), delete(), reverse().

Math

  • 기본적인 수학 연산 기능을 제공합니다.

  • 주요 메서드: abs(), pow(), sqrt(), max(), min(), random().

Integer, Double, Boolean 등 Wrapper 클래스

  • 기본형 데이터 타입을 객체로 감싸주는 클래스입니다.

  • 각종 상수와 파싱, 변환 메서드를 제공합니다.

  • 주요 메서드: parseInt(), parseDouble(), toString().

ThreadRunnable

  • Thread 클래스는 멀티스레딩 프로그래밍을 지원합니다.

  • Runnable 인터페이스는 실행 가능한 코드 블록을 정의할 때 사용됩니다.

  • 주요 메서드: start(), run(), sleep(), join(), interrupt().

2. 주요 인터페이스

Comparable

  • 객체 간의 자연 순서를 정의할 때 사용됩니다.

  • compareTo() 메서드를 구현하여 객체의 비교 방법을 정의합니다.

Cloneable

  • 객체를 복제할 수 있음을 표시하는 인터페이스입니다.

  • clone() 메서드를 통해 얕은 복사를 수행할 수 있습니다.

Runnable

  • 스레드에서 실행할 코드를 정의하는 데 사용됩니다.

  • run() 메서드를 구현하여 실행할 로직을 정의합니다.

3. 예외 클래스

Exception

  • 모든 예외의 부모 클래스입니다. 주로 예외 처리 구조를 위해 사용됩니다.

RuntimeException

  • 체크 예외가 아닌 런타임 예외의 부모 클래스입니다.

NullPointerException, ArrayIndexOutOfBoundsException, ClassCastException

  • 자주 발생하는 예외들로, 코드의 안전성을 높이기 위해 이러한 예외에 대한 이해가 필요합니다.

Last updated