본문 바로가기
AWS(산대특)

DAY 9 - JAVA

by dkdlxl 2024. 1. 30.

Math 클래스 

: 수학 연산과 관련된 다양한 메서드를 제공해주는 클래스

 

절댓값 메서드 : abs ()

System.out.println(Math.abs(-10.888)); // 10.888

 

★올림값 메서드 : ceil()

System.out.println(Math.ceil(3.14)); // 4

 

★내림값 메서드 : floor()

System.out.println(Math.floor(3.14)); // 3

 

★반올림 메서드 : round()

System.out.println(Math.round(3.14)); // 3 내림
System.out.println(Math.round(3.64)); // 4 올림

 

특정 소수점 자리수에서 올림, 내림, 반올림

System.out.println(Math.round( 3.1415 * 100 ) / 100.0 ); // 소수점 세번째 자리에서 반올림 
System.out.println(Math.round( 3.1415 * 1000 ) / 1000.0 ); // 소수점 네번째 자리에서 반올림

 

최솟값 메서드  : min()

System.out.println(Math.min(10, 20)); // 10

 

최댓값 메서드  : max()

System.out.println(Math.max(10, 20)); // 20

 

거듭제곱값 메서드 : pow()

System.out.println(Math.pow(10, 3)); // 1000.0

 

제곱근값 메서드 : sqrt()

System.out.println(Math.sqrt(100)); // 10.0

 

Random 클래스 

: 난수를 생성해주는 클래스

Random random = new Random(); 
System.out.println(random.nextInt()); // -1515530195

 

범위 제약

System.out.println(random.nextInt(45)); // 16 // 0 ~ 44의 숫자가 랜덤으로 나옴) 
System.out.println(random.nextInt() % 45); // -17 // -45 ~ 44

* 0 ~ (지정수 -1)까지 랜덤으로 나옴 (인덱스 번호)

* % 숫자를 하면 음수값이 나옴

 

// Lotto : 1 ~ 45 

    for (int count = 0; count < 5; count++) {
        Set<Integer> lotto = new TreeSet<>();

    while(lotto.size() < 6) { // 6개 고정
        int number = random.nextInt(45) + 1; // 44까지 나오기 때문에 + 1을 해줌
        lotto.add(number);

    }

    System.out.println(lotto);

    }

    // 연금복권 : 1 ~ 5조 0 ~ 9 즁복허용한 6자리수 5조 588526
    List<Integer> annuity = new ArrayList<>();

    int jo = random.nextInt(5) + 1; // 1개 
    annuity.add(jo);

    for (int count = 0; count < 6; count++) { // 6개 
        int number = random.nextInt(10);
        annuity.add(number);

    }
    System.out.println(annuity); //

 

Date 클래스 : 날짜를 다루는 클래스

Date 클래스의 대부분의 메서드는 JDK 1.1부터 사용하지 않도록 권장하고 있음

Date dateNow = new Date();
System.out.println(dateNow);
System.out.println(dateNow.getDate());

 

LocalDateTime 클래스

: Java 8버전 이후부터 클래스를 대체하기 위해 만들어진 클래스

LocalDate 클래스, LocalTime클래스, LocalDateTime 클래스

 

현재 날짜 및 시간의 인스턴스 생성

LocalDateTime now = LocalDateTime.now(); 
System.out.println(now);

 

특정 날짜 및 시간의 인스턴스 생성

LocalDateTime date1 = LocalDateTime.of(2024, 1, 18, 9, 0, 0);
System.out.println(date1);

 

특정 요소 가져오기 : getXXX()

int year = now.getYear();
System.out.println(year);

int month = now.getMonthValue();
System.out.println(month);
		
int day = now.getDayOfMonth();
System.out.println(day);

 

특정 요소 변경하기 : withXXX()

now.withYear(2025).withHour(15);
System.out.println(now);

 

날짜 계산하기

: 특정 요소에 값을 더하거나 빼기 plusXXX() / minusXXX()

: 변경한 값을 반환 함

now = now.plusMonths(2).minusHours(15);
System.out.println(now);

 

LocalDateTime을 Date 클래스로 변경

Date localToDate = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
System.out.println(localToDate);

 

Date -> String

: simpleDateFormat 클래스를 사용하여 지정한 포멧으로 문자열로 변경

SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
String dateString = simpleDateFormat.format(localToDate);
System.out.println(dateString);

 

y : 연도, M : 월, d : 일, a : 오전오후, H : 시간(24), h: 시간(12), m : 분, s : 초, E : 요일

simpleDateFormat = new SimpleDateFormat("yyyy-MM -dd a HH:mm:ss"); // HH 15시 18시 표시 hh 8시 7시 표시
dateString = simpleDateFormat.format(localToDate);
System.out.println(dateString);

 

 

 LocalDateTime -> String 

dateString = now.format(DateTimeFormatter.ofPattern("yyyy-MM -dd a HH:mm:ss"));
System.out.println(dateString);

 

어노테이션 

: Java의 메타프로그래밍 기능으로, 코드에 메타데이터를 추가하는 방법을 제공

 

어노테이션의 역할

: 컴파일러에게 코드 작성 의도를 명확히 알림

: 코드를 잘 이해하고, 오류를 찾는데 도와줌

: 실행에 코드가 어떻게 동작해야 하는지에 대한 메타데이터 제공

 

어노테이션의 장점

: 코드의 가독성 증가

: 코드의 기능에 대한 문서 제공, 자동 생성

: 보일러플레이트 코드 감소

 

기본적인 어노테이션 타입들 

: @Override: 이 메소드가 슈퍼클래스의 메소드를 오버라이드하는 것임을 명시한다.

: @Deprecated: 이 메소드가 더 이상 사용되지 않음을 명시한다.

: @SuppressWarnings: 컴파일러 경고를 숨기기 위해 사용된다.

 

열거형

: java에서 제한된 값 집합을 나타내는데 사용되는 특수한 클래스

 

람다식

: 이름 없는 함수 

 

'AWS(산대특)' 카테고리의 다른 글

DAY 12 - MySQL  (0) 2024.02.05
DAY 11 - GitHub  (0) 2024.02.01
DAY 8 - JAVA  (0) 2024.01.29
DAY 7 - JAVA  (0) 2024.01.28
DAY 6 -JAVA  (0) 2024.01.25