Fullstack-Study-241204-250625

커리큘럼(12-30/변경)

01. Java (v)
02. git 
03. Database
04. Jsp [Server]

05. 미니프로젝트 (3W)
06. HTML,CSS  
07. JS

08. SpringFramework , SrpingBoot
09. React JS [Front-end]
10. 중간프로젝트 (1M)
11. Linux 명령어
12. AWS 클라우드
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)

Math

Wraper


java.util 패키지

Arrays클래스

Date 클래스

Random클래스

StringTokenizer

// StringTokenizer클래스 - 특정문자를 기준으로 잘라서 사용(split과 유사)
String str1 = "오늘 날씨는 미세먼지가 많고, 매우 추워요";

// 자르는 문자 기준이 주어지지 않는다면 공백을 기준으로 문자열을 자름
StringTokenizer token1 = new StringTokenizer(str1);

System.out.println(token1.countTokens()); // 잘린 문자의 개수

//		System.out.println(token1.nextToken());
//		System.out.println(token1.nextToken());
//		System.out.println(token1.nextToken());
//		System.out.println(token1.nextToken());
//		System.out.println(token1.nextToken());
//		System.out.println(token1.nextToken());

// 다음이 있는지 확인하고 전진
while(token1.hasMoreTokens()) { // 다음이 있으면 true, 없으면 false
	System.out.println(token1.nextToken());
}

System.out.println("-".repeat(30));

String str2 = "2025/01/21/월요일/홍길동/서울시";
StringTokenizer token2 = new StringTokenizer(str2,"/"); // 주어진 delimeter를 기준으로 문자열 자름


while(token2.hasMoreTokens()) {
	System.out.println(token2.nextToken());
}
System.out.println("-".repeat(30));


String str3 = "2025.01.21/월요일/홍길동,서울시,마포구,강남구";

// ", . /" 기준으로 자름
// StringTokenizer token3 = new StringTokenizer(str3,",./");

// 구분자도 토큰에 포함시켜줌
StringTokenizer token3 = new StringTokenizer(str3,",./",true);
while(token3.hasMoreTokens()) {
	System.out.println(token3.nextToken());
}

제네릭(Generic)

/*
 * 
 * Object형으로 선언하면, 무엇이든 저장할 수 있는 장점이 있지만
 * 반대로 값을 사용할 떄, 타입별로 형변환을 해야하는 문제가 발생
 * 
 * 잘못 형변환하면 예외 발생
 */
Person<String> p = new Person<>();

p.setT("홍길동");
String name = p.getT();

//
//
Person<ABC> abc = new Person<>(); // 뒤에 <> 타입 생략가능
abc.setT(new ABC());
ABC a = abc.getT();

// <>를 안주면 마법의 상자처럼 동작
// Person p2 = new Person();

// 제네릭에는 기본타입이 저장될 수 없다
Person<Integer> p3 = new Person<>();

Collection Framework

stack

ArrayList