230724 api

자바 기본 api - java.lang

java.lang : 별도의 import 과정이 필요없는 기본 클래스 → 자바에서 기본으로 제공해주는 api, 기본 api

Object : 자바의 최상위 클래스

System : 기본 입출력(키보드 입력, 모니터 출력), JVM의 동작 제어

Class : 외부 라이브러리의 특정 클래스를 로딩할 때 사용

String : 문자열을 다루기 위한 클래스

StringBuffer/StringBuilder : 문자열 조작

Math : 수학/삼각을 위한 처리 클래스

Wrapper : Character, Byte, Short, Integer, Long, Float, Double, Boolean 등으로 구성되며 기본 타입은 멤버를 가질 수 없으므로, 참조 타입인 해당 Wrapper를 활용하여 메소드를 활용

Boxing, UnBoxing

int a = 1004; // Primitive(기본) 타입
Integer b = 1004; // Wrapper 타입
int a1 = b; // UnBoxing : Wrapper -> Primitive
Integer b1 = a; // Boxing : Primitive -> Wrapper

자바 api - java.util

Arrays : 배열을 효율적으로 다루기 위한 클래스

Calendar : 날짜(달력)과 관련된 데이터를 다루기 위한 클래스, 여러개의 날짜를 보고싶을 때 사용

Date : 날짜와 관련된 데이터를 다루기 위한 클래스, 특정 날짜를 보고싶을 때 사용

Objects : 여러 객체를 한 번에 다루기 위한 클래스

StringTokenizer : 문자열 객체들을 다루기 위한 클래스

Random : 랜덤 난수 생성하는 클래스

Collection : List, Set, Map, Stack, Queue, Deque …

locale, timezone(GMT, 그리니치)

locale : 권역(각 구너역별로 언어나 통화, 시간등의 단위가 통일된 지역)

Timezone : 시간대(국가별로 시간대를 설정한 범위의 이름)

ko-kr

로케일, 타임존 순

Date

public static void main(String[] args) {
        Date now = new Date(); // 현재 날짜와 시간
        System.out.println(now);

        String strnow = now.toString(); // 날짜를 String 으로 변환
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//        String today1 = sdf.format(strnow); 자바8 미만
//        System.out.println("문자열에 표시형식 날짜로 표시 : "+today1);
        String today2 = sdf.format(now); // 자바 8 이상 버전 부터 그냥 date를 넣어도 자동 포맷을 지원
        System.out.println("날짜에 표시형식 날짜로 표시 : "+today2);

        int y = now.getYear() + 1900; // 1900년도를 기준으로 해서 안쓰면 123 이렇게 나옴
        int M = now.getMonth() + 1; // 0 부터 시작
        int d = now.getDate();
        int w = now.getDay();
        int h = now.getHours();
        int m = now.getMinutes();
        int s = now.getSeconds();

        System.out.printf("%d년 %d월 %d일", y, M, d);
        System.out.printf("%d시 %d분 %d초", d, m, s);
        
        //자바8 이상은 LocaleDate를 활용하여 시간대나 지역의 지역성을 나타냄
    }

Date2

public static void main(String[] args) {
        Calendar c1 = Calendar.getInstance();
        System.out.println("년 : "+c1.get(Calendar.YEAR));
        System.out.println("월 : "+(c1.get(Calendar.MONTH)+1));
        System.out.println("일 : "+c1.get(Calendar.DATE));
        System.out.println();

        System.out.println("년도의 몇 번째 날 : "+c1.get(Calendar.DAY_OF_YEAR));
        System.out.println("월의 몇 번째 날 : "+c1.get(Calendar.DAY_OF_MONTH));
        System.out.println("요일의 몇 번째 날 : "+c1.get(Calendar.DAY_OF_WEEK));
        System.out.println("이번 달의 몇 번째 월요일 : "+c1.get(Calendar.DAY_OF_WEEK_IN_MONTH));
        System.out.println("년의 몇 번째 주 : "+c1.get(Calendar.WEEK_OF_YEAR));
        System.out.println("이번 달의 몇 번째 주 : "+c1.get(Calendar.WEEK_OF_MONTH));
        System.out.println();

        System.out.println("시(12시간제) : "+c1.get(Calendar.HOUR));
        System.out.println("시(24시간제) : "+c1.get(Calendar.HOUR_OF_DAY));
        System.out.println("분 : "+c1.get(Calendar.MINUTE));
        System.out.println("초 : "+c1.get(Calendar.SECOND));
        System.out.println("밀리초 : "+c1.get(Calendar.MILLISECOND));
        System.out.println("오전(0)/오후(1) : "+c1.get(Calendar.AM_PM));
        System.out.println();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 E요일 aa hh시 mm분 ss초");
        System.out.println(sdf.format(c1.getTime()));
        c1.clear(); // 1970년 1월 1일 부터 날짜 초기화
        System.out.println(sdf.format(c1.getTime()));
        c1.set(2020, 12, 25, 15, 28, 38);
        System.out.println(sdf.format(c1.getTime()));
        System.out.println();

        // 현재와 본인 생년월일
        Calendar now = Calendar.getInstance();
        Calendar birth = Calendar.getInstance();
        birth.clear();
        birth.set(1998, 4, 22, 7, 18, 0);
        long lifeDay = (now.getTimeInMillis() - birth.getTimeInMillis()) / (24*60*60*1000);
        System.out.println("살아온 날 수 : "+lifeDay);
    }

Date3 : 해당 월의 달력 출력

import java.util.Calendar;
import java.util.Scanner;

// 과제
public class CollectionsEx3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Calendar c = Calendar.getInstance();
        System.out.print("알고싶은 월을 입력하세요 : ");
        int month = Integer.parseInt(sc.nextLine());
        System.out.printf("\t\t\t%d 월\n", month);
        System.out.println("일\t월\t화\t수\t목\t금\t토");
//        c.get()
        c.set(2023,month-1,1); //입력받은 월의 1일로 세팅
        //month는 0이 1월이므로 -1을 해준다

        int end = c.getActualMaximum(Calendar.DATE); //해당 월 마지막 날짜
        int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); //해당 월의 첫번째 요일(1:일요일 … 7:토요일)
//        System.out.println(end);
//        System.out.println(dayOfWeek);
        
        // 첫줄 날짜 입력
        int i = 1;
        for(int j=0; j<dayOfWeek-1; j++) {
            System.out.print("\t");
        }

        for(int j=dayOfWeek-1; j<7; j++) {
            System.out.print(i+"\t");
            i++;
        }
        System.out.println();
        
        // 두번째 줄 부터 날짜 입력
        int cnt = 0;
        for(int j=i; j <=end; j++) {
            if(cnt == 6) {
                System.out.print(j+"\t");
                System.out.println();
                cnt = 0;
            } else {
                System.out.print(j+"\t");
                cnt++;
            }
        }
    }
}

로또 추첨기

public static void main(String[] args) {
//        int su = (int) (Math.random()*44+1); // 0~44 + 1 = 1~45
//        System.out.println(su);
        
        // 랜덤 복권 추첨
        Set<Integer> set = new HashSet<>();
        while(true) {
            int su = (int) (Math.random()*44+1);
            if(set.size() == 6) {
                break;
            } else if(set.contains(su)) {
                continue;
            } else {
                set.add(su);
            }
        }

        System.out.println(set);
        Integer[] lotto = set.toArray(new Integer[6]); // Set을 Array로 변형
        Integer[] lotto2 = set.toArray(new Integer[6]);

        Arrays.sort(lotto); // 오름차순 정렬
        Arrays.sort(lotto2, Collections.reverseOrder()); // 내림차순 정렬

        System.out.println(Arrays.toString(lotto));
        System.out.println(Arrays.toString(lotto2));

    }

Collections

enum, 열거형

Week.enum

public enum Week {
    Monday("월요일", "月"),
    Tuesday("화요일", "化"),
    Wednesday("수요일", "水"),
    Thursday("목요일", "木"),
    Friday("금요일", "金"),
    Saturday("토요일", "土"),
    Sunday("일요일", "日");

    public String korea;
    public String china;

    Week(String korea, String china) {
        this.korea = korea;
        this.china = china;
    }
}

CollectionsEx1.class

public class CollectionsEx1 {
    public static void main(String[] args) {
        // 하나만 선택
        Week monday = Week.Monday;
        System.out.println(monday.korea+monday.china);
        
        // 모든 열거형 선택
        Week[] wk = Week.values();
        System.out.println(Arrays.toString(wk));
        for (Week w: wk) {
            System.out.printf("%s (%s)\n", w.korea, w.china);
        }

        System.out.println(Week.Monday);            // 이름
        System.out.println(Week.Monday.ordinal());  // 인덱스
    }
}
profile
자바 풀 스택 주니어 개발자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN