Java/Java 인강

Java 인강 필기 10

code2772 2022. 10. 2. 11:03
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