본문 바로가기
Java/Java 인강

Java 인강 필기 10

by code2772 2022. 10. 2.

[ 목차 ]

    728x90
    반응형
    (22.8.4)
    
    # 34강 java.util 패키지2
    
    ​
    
    - java.time - 자바에서 날짜와 시간을 다루기 우ㅢ한 패키지
    
    ​
    
    - LocalDate클래스 - 날짜 정보를 저장
    
    // now() 현재 날짜 ,of() 특정 날짜
    
    ​
    
    - LocalTime 클래스 - 시간 정보를 저장
    
    // now() 현재 시간 ,of() 특정 시간
    
    ​
    
    - LocalDateTime 클래스 - 날짜 정보와 시간 정보 모두 저장 메서드는 위와 동일
    
    ​
    
    - ZoneDateTime 클래스 - 저장한 날자와 방식을 동일하게
    
    ​
    
    - Instanr 클래스 - 특정 시점의 타임스탬프 객체
    
    ​
    
    - with()메서드 - TemporalAdjuster 타입을 인자로 받아 특정한 날짜를 리턴
    
    ​
    
    - Timer/TimerTask 클래스 - 개발자가 원하는 특정한 시간에 코드를 실행하거나 특정 시간 간격으로 반복되는 작업을 처리한다.
    
    ​
    
    package day34;
    
    ​
    
    import java.time.DayOfWeek;
    
    import java.time.LocalDateTime;
    
    import java.time.temporal.TemporalAdjuster;
    
    import java.time.temporal.TemporalAdjusters;
    
    ​
    
    public class TemproralPrac {
    
    public static void main(String[] args) {
    
    LocalDateTime ldt = LocalDateTime.now();
    
    System.out.println(ldt);
    
    LocalDateTime new_ldt;
    
    ​
    
    new_ldt =ldt.with(TemporalAdjusters.firstDayOfYear());
    
    System.out.println("올해의 첫 번째 날: "+new_ldt);
    
    new_ldt=ldt.with(TemporalAdjusters.lastDayOfYear());
    
    System.out.println("올해의 마지막 날: "+new_ldt);
    
    ​
    
    new_ldt =ldt.with(TemporalAdjusters.firstDayOfMonth());
    
    System.out.println("이번 달의 첫 번째 날: "+new_ldt);
    
    new_ldt=ldt.with(TemporalAdjusters.lastDayOfMonth());
    
    System.out.println("이번 달의 마지막 날: "+new_ldt);
    
    ​
    
    new_ldt =ldt.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
    
    System.out.println("이번 달의 첫 번째 월요일: "+new_ldt);
    
    new_ldt =ldt.with(TemporalAdjusters.lastInMonth(DayOfWeek.SUNDAY));
    
    System.out.println("이번 달의 마지막 일요일: "+new_ldt);
    
    ​
    
    new_ldt =ldt.with(TemporalAdjusters.next(DayOfWeek.FRIDAY));
    
    System.out.println("돌아오는 금요일: "+new_ldt);
    
    new_ldt =ldt.with(TemporalAdjusters.nextOrSame(DayOfWeek.FRIDAY));
    
    System.out.println("오늘을 포함한 다음 금요일: "+new_ldt);
    
    ​
    
    new_ldt =ldt.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));
    
    System.out.println("지난 월요일: "+new_ldt);
    
    new_ldt =ldt.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));
    
    System.out.println("오늘을 포함한 지난 월요일: "+new_ldt);
    
    }
    
    }
    
    ​
    
    package day34;
    
    ​
    
    import java.time.LocalTime;
    
    ​
    
    public class WithPrac2 {
    
    public static void main(String[] args) {
    
    LocalTime lt=LocalTime.now();
    
    System.out.println(lt);
    
    ​
    
    LocalTime now_time=lt.withHour(3).withMinute(25).withSecond(24).withNano(33333);
    
    System.out.println(now_time);
    
    }
    
    }
    
    ​
    
    ​
    
    apackage day34;
    
    ​
    
    import java.time.LocalDateTime;
    
    ​
    
    public class After2 {
    
    public static void main(String[] args) {
    
    LocalDateTime ldt= LocalDateTime.now();
    
    System.out.println(ldt);
    
    ​
    
    LocalDateTime end_time=LocalDateTime.of(2017,6,24,12,00);
    
    System.out.println(end_time);
    
    if(ldt.isAfter(end_time)) {
    
    System.out.println("유통기한이 지났습니다!");
    
    }
    
    else {
    
    System.out.println("유통기한이 아직 지나지 않ㄹ았습니다!");
    
    }
    
    }
    
    }
    
    ​
    
    ​
    
    package day34;
    
    ​
    
    import java.time.LocalDate;
    
    ​
    
    public class TimePlus {
    
    public static void main(String[] args) {
    
    LocalDate ld= LocalDate.now();
    
    System.out.println(ld);
    
    ​
    
    LocalDate ld2=ld.minusYears(2).plusMonths(3).minusDays(4);
    
    System.out.println(ld2);
    
    ​
    
    //자동 변환
    
    LocalDate ld3 = ld2.minusDays(3);
    
    System.out.println(ld3);
    
    ​
    
    //주 더하기
    
    LocalDate ld4 = ld3.plusWeeks(3);
    
    System.out.println(ld4);
    
    }
    
    }
    
    ​
    
    ​
    
    ​
    
    ​
    
    # 35강 java.util 패키지3
    
    ​
    
    - Scanner 클래스 - 문자 데이터를 읽어오는데 도움을 주는 클래스
    
    ​
    
    구현)
    
    Scanner 변수 = new Scanner(System.in);// 입출력 스트림과의 연결
    
    변수.임렵메서드();
    
    ​
    
    - BigDecimal 클래스 - 정확한 소수점 연산을 해야할 때 사용
    
    ​
    
    - formatting - 데이터의 형식을 지정하는 것을 의미
    
    ​
    
    ​
    
    package day35;
    
    ​
    
    import java.math.BigDecimal;
    
    ​
    
    public class BigDecimal1 {
    
    public static void main(String[] args) {
    
    double a=24.3953;
    
    double b=50.343998;
    
    System.out.println(a+b);
    
    ​
    
    BigDecimal number1= new BigDecimal(String.valueOf(a));
    
    BigDecimal number2= new BigDecimal(String.valueOf(b));
    
    System.out.println(number1.add(number2));
    
    }
    
    }
    
    ​
    
    ​
    
    package day35;
    
    ​
    
    import java.text.DecimalFormat;
    
    ​
    
    public class Format1 {
    
    public static void main(String[] args) {
    
    String [] pattern= {
    
    "###.###",
    
    "000.000",
    
    "-###.###",
    
    "000000.00%"};
    
    ​
    
    ​
    
    //형식화 전 배열
    
    double [] arr= {1.3,3.33,124.243,242};
    
    ​
    
    for(int p=0;p<pattern.length;p++) {
    
    DecimalFormat d = new DecimalFormat(pattern[p]);
    
    System.out.println("<<<<<"+pattern[p]+">>>>>");
    
    for(int i=0;i<arr.length;i++) {
    
    // 형식화 후 배열
    
    System.out.println(d.format(arr[i]));
    
    }
    
    }
    
    }
    
    }
    
    ​
    
    ​
    
    package day35;
    
    ​
    
    import java.io.FileInputStream;
    
    import java.util.Scanner;
    
    ​
    
    public class Prac {
    
    public static void main(String[] args) {
    
    try {
    
    FileInputStream fis = new FileInputStream("src//day35//sample.txt");
    
    Scanner s = new Scanner(fis);
    
    while(s.hasNext()) {
    
    System.out.println(s.nextLine());
    
    }
    
    ​
    
    }
    
    catch(Exception e){
    
    e.printStackTrace();
    
    ​
    
    }
    
    }
    
    }
    
    ​
    
    package day35;
    
    ​
    
    import java.util.Scanner;
    
    ​
    
    public class Scanner1 {
    
    public static void main(String[] args) {
    
    Scanner sc= new Scanner(System.in);
    
    System.out.println("이름을 입력하세요.");
    
    String name= sc.nextLine();
    
    System.out.println(name+"님 환영합니다.");
    
    }
    
    ​
    
    }
    
    ​
    
    ​
    
    ​
    
    # 36상 컬렉션 프레임웍1
    
    ​
    
    - 컬렉션 프레임웍 - 데이터를 효율적으로 다루기 위한 클래스들의 집합, 자바에서 제공하는 자료구조
    
    - 종류 set, List, Queue, Map
    
    ​
    
    - 자료구조 - 자료들을 저장할 때, 효율적인 구조로 저장하는 것(데이터 구조)
    
    ​
    
    - 제네릭 - 클래스가 다룰 객체를 미리 명시하는 기법 (== 일반화)
    
    - 제네릭은 모든 종류의 타입을 다룰 수 있도록, 클래스나 메서드를 타입 매개변수를 이용하여 선언한 기법
    
    사용법) 클래스 명 뒤에 <E> , <K>, <V> 와 같은 형식으로 사용
    
    - E - 배열이나 집합들의 요소 타입을 지정
    
    - T - 변수의 자료형과 같은 타입을 지정
    
    - S, U - 여러개의 제네릭 기법을 사용할 때 많이 사용
    
    - K - 키 타입 지정시 사용
    
    - V - 값 타입 지정 시 사용
    
    ​
    
    
    
    package day34;
    
    ​
    
    public class Day34_1 {
    
    ​
    
    public static void main(String[] args) {
    
    Value v = new Value();
    
    v.<Integer>typeSearch(3);
    
    v.typeSearch(3.14);
    
    v.typeSearch(3.14f);
    
    v.typeSearch('a');
    
    }
    
    ​
    
    }
    
    class Value{
    
    public <T> void typeSearch(T x) {
    
    if(x instanceof Integer) {
    
    System.out.println(x+"정수입니다.");
    
    }
    
    else if(x instanceof Double || x instanceof Float) {
    
    System.out.println(x+"는 실수입니다.");
    
    }
    
    else if(x instanceof Character) {
    
    System.out.println(x+"는 문자형입니다.");
    
    }
    
    }
    
    }
    
    ​
    
    
    
    package day34;
    
    ​
    
    public class Day34_2 {
    
    ​
    
    public static void main(String[] args) {
    
    A<Integer> a1=new A<>();
    
    a1.x=10;
    
    a1.y=20;
    
    System.out.println(a1.x+a1.y);
    
    ​
    
    A<String>a2 = new A<>();
    
    a2.x="hello";
    
    a2.y="world";
    
    System.out.println(a2.x+a2.y);
    
    }
    
    }
    
    class A<T>{
    
    T x;
    
    T y;
    
    }
    반응형

    'Java > Java 인강' 카테고리의 다른 글

    Java 인강 필기 12  (1) 2022.10.02
    Java 인강 필기 11  (0) 2022.10.02
    Java 인강 필기9  (0) 2022.10.02
    Java 인강 필기 8  (0) 2022.10.02
    Java 인강 필기 7  (0) 2022.10.02