java.lang 패키지는 아주 특별한 패키지입니다.
그 이유는 클래스를 import하지 않아도 사용할 수 있기 때문입니다.
그만큼 자바에서 꼭 필요한 기능들을 제공합니다.
- 언어 관련 기본
- 문자열 관련
- 기본 자료형 및숫자 관련
- 스레드 관련
- 예외 관련
- 런타임 관련
숫자 클래스
숫자의 기본 자료형은 스택에 저장됩니다.
하지만, 객체로 처리해야할 때를 대비해서 java.lang패키지에 아래와 같은 클래스들이 있습니다.
Byte, Short, Integer, Long, Float, Double, Character, Boolean
기본 자료형의 계산이 객체 타입보다 빠릅니다.
기본자료형은 Stack에 저장되어 바로 계산이 가능하지만, 참조자료형은 Heap에 접근하고 값을 꺼내와야 하기 때문입니다.
Charater, Boolean을 제외한 클래스들은 Wrapper클래스라고 불리며 모드 Number라는 abstract 클래스를 확장합니다.
자바 컴파일러에서 자동 형변환을 해주기 때문에 기본 자료형처럼 사용할 수 있습니다.
숫자 참조 자료형을 만들 이유
- 매개변수를 숫자 자료형으로 받는 메소드를 처리하기 위해
- 제네릭과 같이 기본자료형을 사용하지 않는 기능을사용하기 위해
- MIN, MAX 등과 같이 클래스에 선언된상수 값을 사용하기 위해
- 문자열 숫자간의 변환을쉽게 하려고
- 진수 변환을 쉽게 하기 위해
System - 각종 정보 확인
생성자가 없는것이 큰 특징입니다.
선언 및 리턴 타입 | 변수명 | 설명 |
static PrintStream | err | 에러 및 오류 출력 |
static InputStream | in | 입력값을 처리 |
static printStream | out | 출력값을 처리 |
흔히 사용하던 System.out.println()은 System클래스의 out변수를 사용하고 있었던 것입니다.
참고로 println()은 객체를 출력할때 toString()을 사용하지 않고 String.valueOf()를 null값일때 더 안전합니다.
System클래스는 시스템에 대한 정보를 확인하는 클래스입니다.
- 시스템 속성
- 시스템 환경
- GC
- JVM 종료
- 현재 시간조회
참고로 GC와 JVM관련된 기능은 절대 사용하지 않는것을 추천합니다.
'Java' 카테고리의 다른 글
자바 컬렉션 (0) | 2023.09.27 |
---|---|
제네릭 사용 이유 (0) | 2023.09.26 |
HashMap, HashTable, ConcurrentHashMap (0) | 2023.08.22 |
Java - 타입추론 Var (0) | 2023.08.17 |
Optional 클래스 (0) | 2023.08.17 |
java.lang 패키지는 아주 특별한 패키지입니다.
그 이유는 클래스를 import하지 않아도 사용할 수 있기 때문입니다.
그만큼 자바에서 꼭 필요한 기능들을 제공합니다.
- 언어 관련 기본
- 문자열 관련
- 기본 자료형 및숫자 관련
- 스레드 관련
- 예외 관련
- 런타임 관련
숫자 클래스
숫자의 기본 자료형은 스택에 저장됩니다.
하지만, 객체로 처리해야할 때를 대비해서 java.lang패키지에 아래와 같은 클래스들이 있습니다.
Byte, Short, Integer, Long, Float, Double, Character, Boolean
기본 자료형의 계산이 객체 타입보다 빠릅니다.
기본자료형은 Stack에 저장되어 바로 계산이 가능하지만, 참조자료형은 Heap에 접근하고 값을 꺼내와야 하기 때문입니다.
Charater, Boolean을 제외한 클래스들은 Wrapper클래스라고 불리며 모드 Number라는 abstract 클래스를 확장합니다.
자바 컴파일러에서 자동 형변환을 해주기 때문에 기본 자료형처럼 사용할 수 있습니다.
숫자 참조 자료형을 만들 이유
- 매개변수를 숫자 자료형으로 받는 메소드를 처리하기 위해
- 제네릭과 같이 기본자료형을 사용하지 않는 기능을사용하기 위해
- MIN, MAX 등과 같이 클래스에 선언된상수 값을 사용하기 위해
- 문자열 숫자간의 변환을쉽게 하려고
- 진수 변환을 쉽게 하기 위해
System - 각종 정보 확인
생성자가 없는것이 큰 특징입니다.
선언 및 리턴 타입 | 변수명 | 설명 |
static PrintStream | err | 에러 및 오류 출력 |
static InputStream | in | 입력값을 처리 |
static printStream | out | 출력값을 처리 |
흔히 사용하던 System.out.println()은 System클래스의 out변수를 사용하고 있었던 것입니다.
참고로 println()은 객체를 출력할때 toString()을 사용하지 않고 String.valueOf()를 null값일때 더 안전합니다.
System클래스는 시스템에 대한 정보를 확인하는 클래스입니다.
- 시스템 속성
- 시스템 환경
- GC
- JVM 종료
- 현재 시간조회
참고로 GC와 JVM관련된 기능은 절대 사용하지 않는것을 추천합니다.
'Java' 카테고리의 다른 글
자바 컬렉션 (0) | 2023.09.27 |
---|---|
제네릭 사용 이유 (0) | 2023.09.26 |
HashMap, HashTable, ConcurrentHashMap (0) | 2023.08.22 |
Java - 타입추론 Var (0) | 2023.08.17 |
Optional 클래스 (0) | 2023.08.17 |