ABCD

패키지와 API 문서 본문

PROGRAMMING LANGUAGE/JAVA

패키지와 API 문서

카메사마 2024. 9. 7. 02:17

🐢 자바 라이브러리: 개발자가 편리하게 사용할 수 있도록 패키지 혹은 모듈을 묶은 파일

(JDK: Java Development Kit --> 개발을 편리하게 해줄 수 있도록 다양한 것을 미리 제공해준다.)

 

🐢 패키지: 상호 관련있는 클래스와 인터페이스를 한곳에 묶어 놓은 것

--> 패키지 = 클래스 + 인터페이스

 

🐢  모듈: 밀접한 관계가 있는 패키지와 리소스를 묶어 놓은 것

(JDK를 설치하면 jmods 폴더에 jmod 파일을 제공하는데 jmod 파일이 모듈 파일이다.)

--> 모듈 = 패키지 + 리소스 (클래스 + 인터페이스 + 리소스)

 

🐢 자바의 주요 패키지 및 모듈

패키지 설명
java.awt 그래픽을 처리하는 API
java.io 입출력을 스트림하는 API
java.lang 자바 프로그램의 필수 API
java.math 수학과 관련된 API
java.net 네트워크를 처리하는 API
java.text 날짜, 시간, 문자열 등 지역화를 처리하는 API
java.time JDK8이 지원하는 날짜 및 시간을 처리하는 API
java.util 날짜, 리스트, 벡터 등 유틸리티 API
javax.swing 스윙 컴포넌트 API

 

🐢 java.lang 패키지

    - 필수 패키지

        - 자바 프로그램에서 가장 기본이 되는 클래스와 인터페이스를 보관한다.

        - import문 없이 사용한다.

* java.lang 패키지에 포함된 주요 클래스

클래스 설명
Class 실행 중에 클래스 정보를 제공
Math 각종 수학 함수를 제공
Object 최상위 클래스로 기본적인 메서드를 제공
String, StringBuffer, StringBuilder 문자열을 처리하는 메서드를 제공
System 시스템 정보나 입출력을 처리하는 메서드를 제공
Thread 스레드를 처리하는 메서드를 제공 
포장 클래스 기초 타입 데이터를 객체로 처리하는 메서드를 제공

 

    - Object 클래스

        - 모든 클래스의 조상

        - Object 클래스가 제공하는 주요 메서드

메서드 설명
public  String toString() 객체의 문자 정보를 반환
public boolean equals(Object o) 현재 객체와 동일한지 여부를 반환
public int hashCode() 객체의 해시코드를 반환
protected Object clone() 객체의 사본을 생성
protected void finalize() 가비지 컬렉터가 객체를 수거할 때 호출
public final Class<?> getClass() 객체 정보를 반환

        - 많은 클래스들이 Object 클래스가 제공하는 toString()과 equals() 메서드를 오버라이딩해서 사용 --> 기본 toString은 은 객체 클래스명과 해시코드 제공, equals는 객체 참조 비교

 

    - Class 클래스

        - 실행 중인 자바 프로그램 내부에 포함된 클래스와 인터페이스 정보를 제공하려고 getName(), getSimpleName() 등 다양한 메서드를 제공

        - Class 클래스는 생성자가 없고 어떤 객체라도 생성하면 JVM이 대응하는 Class 객체를 자동으로 생성

        - 실행 도중 객체 정보를 얻으려면 getClass()의 결과인 Class 객체를 사용

 

getName(): 패키지 이름 포함 전체 반환

getSimpleName(): 패키지 이름 제외하고 반환

getTypeName(): 클래스 타입 이름을 문자열로 반환

 

    - Math 클래스

        - 모든 메서드가 static이기 때문에 객체를 생성하지 않고 메서드 호출

        - Math 클래스가 제공하는 주요 double 타입의 메서드

메서드 반환 값
static double abs(double a) 실수 a의 절댓값
static double cos(double a) 실수 a의 cosine 값
static double exp(double a) e^a의 값
static double log(double a) 실수 a에 대한 자연로그 값
static double log10(double a) 실수 a에 대한 10의 로그 값
static double max(double a, double b) 실수 a와 b 중 큰 값
static double min(double a, double b) 실수 a와 b 중 작은 값
static double pow(double a, double b) a^b의 값
static double random() 0.0 이상 1.0 미만의 난수
static double sin(double a) 실수 a의 sine 값
static double sqrt(double a) 실수 a의 제곱근 값
static double tan(double a) 실수 a의 tangent 값

 

    - String 클래스

        - 상수 문자열이기 때문에 String 객체에 포함된 문자열을 수정 불가

        - String 객체의 문자열을 수정하는 것은 내부적으로는 수정된 문자열을 포함하는 새로운 String 객체를 생성

        - 따라서 문자열 내용을 자주 변경한다면 String 클래스를 사용하는 것은 좋지 않음

 

    - System 클래스

        - 표준 입출력을 비롯한 실행 시스템과 관련된 필드와 메서드를 static으로 제공

        - System.out.println()도 System 클래스가 제공하는 메서드

        - System 클래스의 세 가지 필드

필드 설명
static InputStream in 표준 입력 스트림
static PrintStream out 표준 출력 스트림
static PrintStream err 표준 오류 출력 스트림

 

        - System 클래스가 제공하는 주요 메서드

메서드 설명
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 주어진 위치에서 주어진 길이만큼 배열 src를 배열 dest로 복사
static long currentTimeMillis() 현재 시각을 밀리초 단위로 반환
static void exit() 현재 실행 중인 JVM을 종료
static void gc() 가비지 컬렉터를 실행
static String getenv(String key) 주어진 key 값에 해당하는 시스템 특성을 반환
static String getProperty(String key) 주어진 key 값에 해당하는 시스템 특성을 반환
static long nanoTime() 현재 시각을 나노초 단위로 반환

 

 

🐢 java.util 패키지

    - 날짜, 시간, 리스트, 벡터, 해시 테이블, 컬렉션 등 다양한 유틸리티 클래스와 인터페이스를 제공

    - java.util 패키지가 제공하는 주요 클래스

클래스 설명
Arrays 배열을 비교, 복사, 정렬 등 조작할 때 사용
Calendar 날짜와 시간 정보가 필요할 때 사용
Date 밀리초 단위의 현재 시각이 필요할 때 사용
StringTokenizer 특정 문자로 구분된 문자열을 뽑아낼 때 사용
Random 난수가 필요할 때 사용

 

    - Array 클래스

        - Arrays 클래스가 제공하는 주요 정적 메서드

메서드 설명
List asList(배열) 배열을 리스트로 변환
int binarySearch(배열, 키) 배열에서 키 값이 있는 인덱스를 반환
배열 copyOf(배열, 길이) 원본 배열을 길이만큼 복사
배열 copyOfRange(배열, 시작, 끝) 원본 배열을 지정한 영역만큼 복사
boolean equals(배열, 배열) 두 배열의 동일 여부를 비교
void fill(배열, 값) 배열을 지정된 값으로 저장
void fill(배열, 시작, 끝, 값) 배열의 지정된 영역에 지정된 값을 저장
void sort(배열) 배열을 오름차순으로 정렬

 

    - Date 클래스

        - Date 클래스는 현재 날짜와 시각 정보를 제공

        - 국제화에 맞지 않아 대부분의 메서드는 현재 폐기 중

        - 주로 하위 호환성이나 간단한 날짜 정보를 원할 때만 사용

 

    - Calendar 클래스

        - 지역이나 문화에 따라 달력을 표시하는 방식이 다르기 때문에 추상 클래스로 되어 있음

        - 표준 달력을 사용한다면 다음과 같이 객체 생성

Calendar now = Calendar.getInstance();

        - Calendar 클래스가 제공하는 정수 타입의 상수

필드 이름 의미
AM, AM_PM, PM 오전 및 오후
DATE 날짜
JANUARY, FEBRUARY... 1월, 2월 등
SUNDAY, MONDAY... 일요일, 월요일 등
MINUTE
HOUR 시간 (0~11)
HOUR_OF_DAY 시간 (0~23)
MONTH 월 (0~11)
DAY_OF_MONTH 한 달 내에서의 날짜
WEEK_OF_YEAR 일 년 내에서의 몇 주차
YEAR 연도

        - MONTH는 0~11 사이의 정수

 

        - Calendar 클래스가 제공하는 주요 메서드

메서드 설명
boolean after(Object when) 주어진 시간보다 뒤쪽이면 true를 반환
boolean before(Object when) 주어진 시간보다 앞쪽이면 true를 반환
void clear(int field) 지정된 필드를 미정의 상태로 변경
int compareTo(Calendar anotherCalendar) 2개의 Calendar 객체를 비교
int get(int fields) 주어진 필드 값을 반환
int getFirstDayOfWeek() 첫 날이 무슨 요일인지 반환
Date getTime() Calendar 객체를 Date 객체로 변환
void set(int field, int value) 주어진 필드를 주어진 값으로 변경
void set(int year, int month, int date) 연, 월, 일 값을 변경
void setTime(Date date) Date 객체로 Calendar 객체를 설정

 

    - StringTokenizer 클래스

        - 문자열을 토큰으로 분리하는 데 사용

        - 토큰은 공백이나 줄 바꿈 등 구분자를 사용해 문자열을 분리

        - StringTokenizer 클래스의 주요 생성자

생성자 설명
StringTokenizer(String s) 주어진 문자열을 기본 구분자로 파싱한 StringTokenizer 객체를 생성
StringTokenizer(String s, String delim) 주어진 문자열을 delim 구분자로 파싱한 StringTokenizer 객체를 생성

        - 기본 구분자는 공백, 탭, 줄 바꿈, 복귀, 용지 먹임 문자

 

    - Random 클래스

생성자 설명
Random() Random 객체를 생성
Random(long seed) 주어진 시드를 사용하는 Random 객체를 생성
메서드 설명
boolean nextBoolean() 논리 타입 난수를 발생
double nextDouble() 0.0 이상 1.0 미만의 double 타입 난수를 발생
float nextFloat() 0.0 이상 1.0 미만의 float 타입 난수를 발생
double nextGaussian() 평균, 표준편차가 0.0 및 1.0 인 정규분포 난수를 발생
int nextInt() int 타입의 난수를 발생
int nextInt(int n) 0~(n - 1) 사이의 int 타입 난수를 발생
long nextLong() long 타입의 난수를 발생
void setSeed(long seed) 시드 값을 설정

 

 

🐢 java.text 패키지

    - 현지화가 필요한 데이터의 효율적 처리를 위한 패키지

    - 특히 패키지의 Fromat 클래스는 지역에 민감한 데이터를 현장에 맞게 문자열로 표현하고 포맷할 수 있도록 지원

 

    - SimpleDateFormat 클래스

        - 날짜 정보를 현지화하는 클래스로 날짜를 텍스트로 포맷하거나 텍스트를 날짜로 파싱

        - SimpleDateFormat 클래스에서 사용할 수 있는 패턴 기호

패턴 기호 설명 패턴 기호 설명
y h 시 (1~12)
M H 시 (0~23)
w 월 구분 없는 주 k 시 (1~24)
W K 시 (0~11)
d m
D 월 구분 없는 일 s
E 요일 S 밀리초
a 오전과 오후 z 타임존

 

    - DecimalFormat 클래스

        - 정수, 실수를 포함한 다양한 종류의 수를 과학적 표기, 퍼센트 표시, 화폐 표시 등으로 포맷 지원

        - DecimalFormat 클래스에서 사용할 수 있는 패턴 기호

패턴 기호 설명
# 10진수
0 선행 제로 10진수
. 소수점
, 구분자
+ 또는 - 양수 또는 음수
E 지수
; 패턴 구분
% 백분율

'PROGRAMMING LANGUAGE > JAVA' 카테고리의 다른 글

열거 타입  (0) 2024.06.10
예외처리  (0) 2024.06.09
인터페이스  (0) 2024.06.09
상속과 추상 클래스  (0) 2024.06.09