java.lang 패키지는 무엇이며, 무엇을 제공할까?
java.lang 패키지
--
자바 프로그래밍을 할 때
다른 패키지에 존재하는 클래스를 가져다 사용하기 위해서는
"import" 키워드를 사용하여 사용하고 싶은 클래스가 위치하는 패키지를 불러와서 사용할 수 있지만
java.lang 패키지는
자바 언어에서 가장 기본적이고 필수적인 클래스와 인터페이스들을 제공하는 패키지로,
별도로 "import" 키워드를 사용하지 않아도 바로 사용할 수 있도록 설계되어 있다.
--
java.lang 패키지에 포함된 주요 클래스와 기능
--
1. Object 클래스
모든 Java 클래스의 "최상위 부모 클래스"로, 클래스를 통해 생성한 객체에 사용할 수 있는 기본적인 메서드를 제공한다.
주요 메서드
- toString() : 객체를 문자열로 표현할 때 사용
- equals(Object obj) : 두 객체가 동일한지 비교
- hashCode() : 객체의 해시 코드를 반환
- clone() : 객체 복제
[java.lang] Object 클래스 (객체 관련 클래스)
Object 클래스는 무엇이며, 어떤 메서드를 제공할까? Object 클래스 --Object 클래스는모든 java 클래스의 최상위 부모 클래스로상속을 정의하지 않은 모든 클래스는 자동으로 Object 클래스를
nijy.tistory.com
2. String 클래스
문자열을 처리하는 "불변(Immutable)" 클래스(객체)로, 문자열의 기본적인 조작에 필요한 메서드를 제공한다.
(String 객체는 불변이기 때문에, 문자열의 내용이 변경될 때마다 새로운 객체를 생성하여 정의된다.)
주요 메서드
- length() : 문자열 길이
- substring() : 문자열에서 특정 범위의 문자열을 추출
- charAt() : 문자열에서 특정 위치의 문자를 추출
- equals() : 객체 참조가 아닌 문자열이 동일한지 비교 (Object 클래스의 equals()를 오버라이딩한 메서드)
[java.lang] String 클래스 (불변 문자열 관련 클래스)
String 클래스에서 제공하는 메서드는 무엇이 있을까? String 클래스 --문자열을 다루기 위한 대표적인 클래스로,문자열을 다룰 때 불변(immutable)성과 메모리 효율성을 제공하며, 다양한 편
nijy.tistory.com
3. StringBuilder 클래스 & StringBuffer 클래스
String 클래스와 달리 "가변(mutable)"으로 문자열을 처리할 수 있다.
즉, 문자열을 자주 변경한다면 String 대신 StringBuilder 또는 StringBuffer를 사용한다.
StringBuilder와 StringBuffer 차이
- StringBuilder : 동기화(Synchronization)를 지원하지 않아서 단일 스레드 환경에서 성능이 좋다.
- StringBuffer : 동기화를 지원하여 멀티스레드 환경에서 안전하게 사용하기 좋다.
즉, 멀티 스레드 프로그램에서는 StringBuffer를
싱글 스레드 프로그램에서는 StringBuilder를 사용한다.
[java.lang] StringBuffer 클래스, StringBuilder 클래스 (가변 문자열 관련 클래스)
StringBuffer와 StringBuilder는 무엇이며, 어떻게 사용할까? StringBuffer 클래스 --StringBuffer 클래스는"가변 길이 문자열"을 다루기 위한 클래스로String 클래스와 달리 문자열을 수정할 수 있다. St
nijy.tistory.com
4. Math 클래스
수학적 연산을 수행할 수 있는 정적 메서드를 제공한다.
주요 메서드
- abs() : 절대값 추출
- pow() : 제곱 계산
- sqrt() : 제곱근 계산
- random() : 0.0과 1.0 사이의 난수 생성
[java.lang] Math 클래스 (수학적 계산 관련 클래스)
Math 클래스는 무엇이며, 어떻게 사용할까? Math 클래스 --Math 클래스는수학적 계산에 유용한 메서드를 제공하는 유틸리티 클래스다. java.lang 패키지에 포함된 다른 클래스들과 달리Math 클
nijy.tistory.com
5. Wrapper(래퍼) 클래스
자바의 기본 타입(int, double, char 등)을 객체(참조타입)로 포장(변환)하는 클래스다.
"오토박싱(Auto-boxing)"과 "언박싱(Unboxing)"을 지원하여,
기본형과 객체형 간의 형변환을 자동으로 처리할 수 있다.
오토박싱 : 기본형 -> 객체형(래퍼 클래스 객체) 변환
언박싱 : 객체형(래퍼 클래스 객체) -> 기본형 변환
주요 래퍼 클래스
- Integer : int타입을 객체로 다룸
- Double : double타입을 객체로 다룸
- Boolean : boolean타입을 객체로 다룸
[java.lang] Wrapper 클래스 (기본형 객체 관련 클래스)(+오토박싱, 언박싱)
Wrapper 클래스란 무엇이며, 어떻게 사용할까? Wrapper 클래스 --기본 타입을 객체로 감싸기 위한 클래스를 통틀어서 부르는 용어다. 객체지향에서는 모든 것이 객체로 다루어져야 하지만
nijy.tistory.com
6. System 클래스
표준 입력, 출력 or 시스템 관련 정보를 제공하는 정적 메서드를 제공한다.
주요 메서드
- System.out : 표준 출력(콘솔 출력)을 위한 스트림
- System.in : 표준 입력(콘솔 입력)을 위한 스트림
- System.err : 표준 에러 출력을 위한 스트림
- System.gc() : 가비지 컬렉터를 실행
- System.currentTimeMillis() : 현재 시간을 밀리초 단위로 반환
7. Thread 클래스
멀티스레드 프로그래밍을 위한 클래스로, 스레드를 생성 및 관리에 필요한 메서드 제공
주요 메서드
- start() : 새로운 스레드 시작
- run() : 스레드에서 실행할 코드 정의
- sleep() : 스레드를 일정 시간 동안 정지
- join() : 다른 스레드가 끝날 때까지 대기
8. Exception 클래스 & RuntimeException 클래스
예외 처리에 필요한 메서드들을 제공한다.
Exception 클래스와 RuntimeException 클래스 차이
- Exception : 일반적인 예외를 처리하며, 예외 처리 코드를 명시적으로 작성해야 함
- RuntimeException : 런타임 예외를 처리하며, 명시적으로 예외 처리를 하지 않아도 컴파일 오류 X
모든 예외 클래스는 Throwalbe 클래스를 상속받는다.
9. Class 클래스
자바에서 "리플렉션(Reflection)" 기능을 제공하여, 객체의 클래스 정보를 동적으로 다룰 수 있다.
주요 메서드
- getName() : 클래스 이름을 반환
- newInstance() : 클래스의 인스턴스를 동적으로 생성
10. Runnable 클래스
멀티스레드 프로그래밍에서 스레드가 실행할 작업을 정의할 때 사용하는 인터페이스다.
--
'Language > Java' 카테고리의 다른 글
[java.lang] String 클래스 (불변 문자열 관련 클래스) (0) | 2024.10.31 |
---|---|
[java.lang] Object 클래스 (객체 관련 클래스) (0) | 2024.10.31 |
예외처리 (try-catch, finally, throw) (0) | 2024.10.24 |
내부 클래스 (+ 익명 클래스) (0) | 2024.10.23 |
인터페이스 (1) | 2024.10.22 |