-
Java 표준 라이브러리JAVA 2023. 3. 2. 21:40
API 도큐먼트(API Documentation)
API(Application Programming Interface)
- 어플리케이션을 만들 때 사용할 수 있는 인터페이스
- 공개된 멤버(public 과 protected로 선언된 구성 요소)만 사용 가능
API 도큐먼트 : Java에서 기본으로 제공하는 라이브러리(API)에 대한 사용법을 정리한 문서
https://docs.oracle.com/en/java/javase/index.html
- JDK 버전 별로 문서를 제공
API 문서 보는 순서
- 클래스가 소속된 모듈 및 패키지
- 클래스의 상속 관계
- 구현된 인터페이스
- 클래스 선언부
- SUMMARY
클래스가 가진 구성 멤버 확인 용이
Method Summary 항목
- All Methods : 클래스가 가지고 있는 모든 메소드
- Static Methods : 정적 메소드
- Insatance Methods : 인스턴스 메소드
- Concrete Methods : 실행부를 완전하게 갖춘 메소드(↔ 추상 메소드)
- Deprecated Methods : 앞으로 삭제될 메소드
가급적 사용을 자제
java.base 모듈
Java에서 가장 기본이 되는 클래스와 인터페이스가 있는 모듈
주요 패키지
패키지 설명 참고 java.lang Java 언어와 관련된 클래스 제공 import 하지 않고 사용 가능 java.util 자료 구조 및 일부 특화 기능(Scanner 등)과 관련된 클래스 제공 java.io 입출력과 관련된 클래스 제공 java.net 네트워크 통신과 관련된 클래스 제공
포장 클래스(Wrapper)
- 기본 타입에 대응되는 참조 타입 (int → Integer 등)
- Wrapper 클래스는 객체와 기본 자료형 간 변환이 자유롭다.
- 포장 객체의 값을 비교할 때는 ==와 =! 연산자 대신 equals() 메소드를 사용해야 한다.
- 포장 클래스의 equals() 메소드는 내부에 저장된 값을 비교하도록 재정의되어 있다.
기본 타입 클래스 byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean
방식과 언박싱
- 오토박싱(auto boxing) : Wrapper 타입 변수에 값 저장 가능
- 오토 언박싱(auto unboxing) : 기본 자료형에 Wrapper 클래스 값을 바로 저장 가능
//박싱Integer obj = 100; //Ineteger 객체를 생성하여 값을 저장하고 객체의 번지를 변수에 저장//Integer obj = new Integer(100);//언박싱int value = obj; //Ineteger 타입 객체의 값을 가져와 int 타입 변수에 저장//int value = obj.intValue();
Math 클래스
- 수햑 계산에 사용할 수 있는 정적 메소드 제공
메소드 설명 abs() 절대값 계산 (double, float, int, long) double cell(double a) 소수점 첫 번쨰 자리 올림 double floor(double a) 소수점 첫 번쨰 자리 버림 max() 두 수 중 큰 값 (double, float, int, long) min() 두 수 중 작은 값 (double, float, int, long) double random() 0 ~ 1 사이의 난수 생성 round() 반올림 (int, long)
Random 클래스
난수 관련 클래스
생성자
생성자 설명 Random() 현재 시간을 이용해서 종자값을 자동 설정하여 난수 생성 Random(long seed) 주어진 종자값으로 난수 생성
종자값이 같으면 같은 난수가 생성됨주요 메소드
메소드 설명 double nextDouble() 0.0 이상 1.0 미만의 double 타입 난수 생성 int nextInt(int n) 0 이상 n 미만의 int 타입 난수 생성 //1부터 6 사이(1 이상 6 미만)의 난수 생성int num = (int)(Math.random()*6) + 1; //Math 클래스의 randoum() 메소드 사용int num = new Random().nextInt(6) + 1; //Random 클래스의 nextInt()
날짜와 시간 클래스
Date 클래스
- 날짜를 표현하는 클래스
- 현재 날짜 정보를 저장하기 위해 사용
Date now = new Date();System.out.println(now.toString()); //날짜를 문자열로 출력하도록 재정의된 toString() 메소드
SimpleDateFomat 클래스
날짜를 원하는 형식의 문자열로 나타낼 때 사용
Date now = new Date();SimpleDateFormat sdf = new SimpleDateForamt("yyyy.MM.dd HH:mm:ss");String strNow = sdf.format(now); //2023.03.14 15:57:00
Calendar 클래스
- 구체적인 날짜와 시간 관련 데이터를 다룰 때 사용
- 객체는 new 연산자가 아닌 getInstance() 메소드로 생성한다. (싱글톤 방식)
- 추상 클래스이기 때문에 객체를 직접 생성할 수 없다.
주요 메소드
메소드 설명 static Calendar getInstance() 현재 컴퓨터의 날짜와 시간을 가지고 Calendar 객체 생성 static Calendar getInstance(Locale aLocale) 지정한 나라의 날짜와 시간을 가지고 Calendar 객체 생성
나라는 Locale 클래스에 상수로 제공static Calendar getInstance(TimeZone zone) 지정한 지역의 날짜와 시간을 가지고 Calendar 객체 생성
지역 정보는 TimeZone 클래스의 getAvailableIDs() 메소드와 getTimeZone(String ID) 메소드를 사용하여 확인 가능
TimeZone에는 보통 나라 정보가 포함되어 있다.주요 상수
- get(Calendar.상수명)으로 값 호출 가능
상수 설명 int YEAR 연도 int MONTH 월(0부터 시작) int DAY_OF_MONTH 일 int DAY_OF_WEEK 요일 int AM_PM 오전/오후 int HOUR 시 int MINUTE 분 int SECOND 초
달력 만들기
- 연도와 월을 입력받아 이에 해당하는 달력을 출력하는 프로그램
123456789101112131415161718192021222324252627282930313233343536373839404142import java.util.Calendar;import java.util.Scanner;public class MyCalender {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("년도를 입력 (ex.2023) : ");int year = sc.nextInt();System.out.print("월을 입력 (ex. 2) : ");int month = sc.nextInt();drawCalnender(year, month);sc.close();}public static void drawCalnender(int year, int month) {Calendar cal = Calendar.getInstance(); // 싱글톤 패턴 객체 생성int sweek = 0; // 그 달의 첫 번째 날의 요일 (일: 1, 월: 2, 화: 3, 수: 4, 목: 5, 금: 6, 토: 7)int eday = 0; // 마지막 날짜cal.set(year, month - 1, 1); // 1월 달이 0부터 시작sweek = cal.get(Calendar.DAY_OF_WEEK);eday = cal.getActualMaximum(Calendar.DATE);System.out.println(" " + year + "년 " + month + "월");System.out.println(" 일 월 화 수 목 금 토");for (int i = 1; i < sweek; i++) { // 첫째 날이 출력되기 전에 공백 출력System.out.print(" ");}for (int d = 1, w = sweek; d <= eday; d++, w++) { // 1일부터 마지막 날짜까지 출력System.out.print(d < 10 ? " " + d : " " + d); // 날짜 자릿수 맞추기(1의 자리 날짜는 공백 2칸, 10의 자리 날짜는 1칸)if (w % 7 == 0) System.out.println(); // 토요일이면 줄바꿈}}}
LoacalDateTime 클래스
- java.time 패키지에 포함되어 있음
- 날짜와 시간 조작 및 비교에 대한 메소드를 제공
날짜와 시간 계산 관련 메소드
연 월 일 주 시 분 초 덧셈 plusYears(long) plusMonths(long) plusDays(long) plusWeeks(long) plusHours(long) plusMinutes(long) plusSeconds(long) 뺄셈 minusYears(long) minusMonths(long) minusDays(long) minusWeeks(long) minusHours(long) minusMinutes(long) minusSecond(long) 날짜와 시간 비교 메소드
메소드 설명 boolean isAfter(other) 비교 대상 날짜가 이후 날짜인지 여부 boolean isBefore(other) 비교 대상 날짜가 이전 날짜인지 여부 boolean isEqual(other) 비교 대상 날짜와 동일한 날짜인지 여부 long until(other, unit) 비교 대상 날짜와 주어진 시간 단위(unit) 차이를 리턴
'JAVA' 카테고리의 다른 글
제네릭(Generic) (0) 2023.03.02 컬렉션 자료구조(Collection Data Structure) (0) 2023.03.02 예외 처리(Exception) (0) 2023.03.02 싱글톤(Singleton) 패턴 (0) 2023.03.02 익명 클래스(Anonymous Class) (0) 2023.03.02