ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 문서 보는 순서

    1. 클래스가 소속된 모듈 및 패키지
    2. 클래스의 상속 관계
    3. 구현된 인터페이스
    4. 클래스 선언부
    5. 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

     


    달력 만들기

    • 연도와 월을 입력받아 이에 해당하는 달력을 출력하는 프로그램

     

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    import 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 - 11); // 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(); // 토요일이면 줄바꿈
            }
        }
    }

     

    MyCalendar 실행 결과

     


    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
Designed by Tistory.