| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 태국
- tunder client
- 데이터분포
- 꽉뚝짝 시장
- Linked List
- sqld
- 예외처리
- git push -u
- Package
- 수업복습
- echo 명령어
- 함수
- node.js
- 성능평가지표
- 루키즈
- 루키즈33기
- 보안공부
- pandas
- 클래스
- 방콕
- SK쉴더스
- List
- 패키지
- 생성형AI
- 지도학습
- 블록(Block)
- 레이블인코딩
- OT후기
- gdgm
- dropna
- Today
- Total
개발 블로그
패키지와 API 문서 본문
🐢 자바 라이브러리: 개발자가 편리하게 사용할 수 있도록 패키지 혹은 모듈을 묶은 파일
(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 | 지수 |
| ; | 패턴 구분 |
| % | 백분율 |