※ java.base는 모든 모듈이 의존하는 기본 모듈
모듈 중 유일하게 requires 하지 않아도 사용할 수 있다.
패키지 | 용도 |
java.lang | 자바 언어의 기본 클래스를 제공 |
java.util | 자료 구조와 관련된 컬렉션 클래스를 제공 |
java.text | 날짜 및 숫자를 원하는 형태의 문자열로 만들어 주는 포맷 클래스를 제공 |
java.time | 날짜 및 시간을 조작하거나 연산하는 클래스를 제공 |
java.io | 입출력 스트림 클래스를 제공 |
java.net | 네트워크 통신과 관련된 클래스를 제공 |
java.nio | 데이터 저장을 위한 Buffer 및 새로운 입출력 클래스 제공 |
ex) java.lang : String, System, Integer, Double, Exception, RuntimeException 등
java.util : Scanner
※ java.lang 패키지에 있는 클래스와 인터페이스는 import 없이 사용 가능
클래스 | 용도 | |
Object | - 자바 클래스의 최상위 클래스로 사용 | |
System | - 키보드로부터 데이터를 입력받을 때 사용 - 모니터(콘솔)로 출력하기 위해 사용 - 프로세스를 종료시킬 때 사용 - 진행 시간을 읽을 때 사용 - 시스템 속성(프로퍼티)를 읽을 때 사용 |
|
문자열 관련 | String | - 문자열을 저장하고 조작할 때 사용 |
StringBuilder | - 효율적인 문자열 조작 기능이 필요할 때 사용 | |
java.util.StringTokenizer | - 구분자로 연결된 문자열을 분리할 때 사용 | |
포장 관련 | Byte, Short, Character, Integer, Float, Double, Boolean |
- 기본 타입의 값을 포장할 때 사용 - 문자열을 기본 타입으로 변환할 때 사용 |
Math | - 수학 계산이 필요할 때 사용 | |
Class | - 클래스의 메타 정보(이름, 구성 멤버) 등을 조사할 때 사용 |
※ Object 클래스
클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않으면 암시적으로 java.lang.Object 클래스를 상속
모든 클래스는 Object의 자식이거나 자손 클래스. 모든 객체에서 사용할 수 있다.
- 주요 메소드
boolean equals(Object obj)
: 객체의 번지를 비교하고 결과를 리턴. 비교 연산자인 ==와 동일한 결과를 리턴
int hashCode()
: 객체의 해시코드(객체를 식별하는 정수)를 리턴. 객체의 메모리 번지를 이용해서 해시코드를 생성하기 때문에
객체마다 다른 정수값을 리턴한다.
@Override
public int hashCode() {
int hashCode = no + name.hashCode();
return hashCode;
}
// Object의 hashCode() 메소드를 재정의해서 학생 번호와
// 이름 해시코드를 합한 새로운 해시코드를 리턴하도록 함
// 번호와 이름이 같으면 동일한 해시코드가 생성됨
String toString()
: 객체 문자 정보(객체를 문자열로 표현한 값)를 리턴.
기본적으로 Object의 toString() 메소드는 '클래스명@16진수해시코드'로 구성된 문자열을 리턴한다.
※ System 클래스
System 클래스의 정적(static)필드
- out : 콘솔에 원하는 문자열 출력 가능
- err : out 필드와 동일한데, 차이점은 콘솔 종류에 따라 에러 내용이 빨간색으로 출력된다. 굳이 사용 안함
- in : 키보드로부터 입력된 키 읽기 가능.
// in 필드를 이용해서 read() 메소드를 호출하면 입력된 키의 코드값 얻을 수 있음
// 코드값은 아스키코드표 참고
int keyCode = System.in.read();
※ 문자열 관련 String, StringBuilder, StringTokenizer
String
: 불변(immutable)한 문자열을 표현하는데 사용.
문자열을 수정하면 새로운 문자열 객체가 생성되며, 기존의 문자열 객체는 변경되지 않는다.
멀티스레딩 환경에서 안정성을 제공하고 문자열의 내용이 변경되지 않는 상황에서 유용
StringBuilder
: 가변적인 문자열을 처리하는데 사용.
문자열의 연결이나 수정을 할 때 새로운 객체를 생성하지 않고 내부의 버퍼를 이용하여 처리하므로 성능이 향상
스레드 안전성은 제공하지 않는다. 단일 스레드 환경에서 문자열 수정이 빈번한 상황에서 사용
StringTokenizer
: 주어진 문자열을 특정 구분자로 나누어 토큰으로 분리하여 사용.
간단한 문자열 분리 작업에 유용하지만, 더 유연한 문자열 처리를 위해서는 정규 표현식이나
split() 메서드 등을 사용하는 것이 더 권장
'언어 > Java' 카테고리의 다른 글
문자열 클래스 (0) | 2023.08.08 |
---|---|
롬복(Lombok) (0) | 2023.08.08 |
API 도큐먼트 (0) | 2023.08.08 |
LIFO와 FIFO (0) | 2023.08.08 |
Properties 예시 (0) | 2023.08.08 |