java.lang : 별도의 import 과정이 필요없는 기본 클래스 → 자바에서 기본으로 제공해주는 api, 기본 api
Object : 자바의 최상위 클래스
System : 기본 입출력(키보드 입력, 모니터 출력), JVM의 동작 제어
Class : 외부 라이브러리의 특정 클래스를 로딩할 때 사용
String : 문자열을 다루기 위한 클래스
StringBuffer/StringBuilder : 문자열 조작
Math : 수학/삼각을 위한 처리 클래스
Wrapper : Character, Byte, Short, Integer, Long, Float, Double, Boolean 등으로 구성되며 기본 타입은 멤버를 가질 수 없으므로, 참조 타입인 해당 Wrapper를 활용하여 메소드를 활용
int a = 1004; // Primitive(기본) 타입
Integer b = 1004; // Wrapper 타입
int a1 = b; // UnBoxing : Wrapper -> Primitive
Integer b1 = a; // Boxing : Primitive -> Wrapper
Arrays : 배열을 효율적으로 다루기 위한 클래스
Calendar : 날짜(달력)과 관련된 데이터를 다루기 위한 클래스, 여러개의 날짜를 보고싶을 때 사용
Date : 날짜와 관련된 데이터를 다루기 위한 클래스, 특정 날짜를 보고싶을 때 사용
Objects : 여러 객체를 한 번에 다루기 위한 클래스
StringTokenizer : 문자열 객체들을 다루기 위한 클래스
Random : 랜덤 난수 생성하는 클래스
Collection : List, Set, Map, Stack, Queue, Deque …
ko-kr
로케일, 타임존 순
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를 활용하여 시간대나 지역의 지역성을 나타냄
}
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);
}
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));
}
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;
}
}
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()); // 인덱스
}
}