Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- java 람다식
- java
- java super메소드
- java스터디
- java 패키지
- java반복문
- java 메서드 오버라이딩
- java 추상 클래스
- javautil패키지
- gpt활용팁
- Java 자료구조
- JAVA데이터타입
- java final 키워드
- java_this
- java 이진트리
- import 키워드
- java 애노테이션
- 생성형AI
- ai활용법
- 화살표연산자
- 티스토리챌린지
- 창의적도구
- this키워드
- binraytree
- javascript
- 오블완
- asyncawait
- java objact클래스
- javatime
- java 제네릭
Archives
- Today
- Total
코딩쿠의 코드 연대기
Java) javaUtil 패키지 본문
학습 목표
java.util
패키지의 주요 클래스와 인터페이스 이해- Java의 시간 처리 방법과
java.time
패키지 활용 Timer
와TimerTask
클래스의 활용법 학습
java.util
패키지
java.util
패키지는 Java에서 데이터 구조, 시간 관리, 랜덤 숫자 생성 등 다양한 유틸리티 기능을 제공합니다. 아래는 주요 내용과 예제입니다.
1. 컬렉션 프레임워크
컬렉션 프레임워크는 데이터를 효율적으로 저장하고 조작할 수 있는 다양한 자료 구조를 제공합니다.
- List: 순서가 있는 컬렉션, 중복 허용
- 구현 클래스:
ArrayList
,LinkedList
,Vector
- 구현 클래스:
- Set: 순서가 없고 중복을 허용하지 않는 컬렉션
- 구현 클래스:
HashSet
,TreeSet
,LinkedHashSet
- 구현 클래스:
- Map: 키-값 쌍으로 이루어진 데이터 구조
- 구현 클래스:
HashMap
,TreeMap
,LinkedHashMap
- 구현 클래스:
예제: ArrayList
사용
import java.util.ArrayList;
import java.util.List;
public class CollectionExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
2. 날짜 및 시간 관리
java.util
패키지는 날짜와 시간을 다루기 위한 클래스를 제공합니다. 다만, Java 8 이상에서는 java.time
패키지 사용을 권장합니다.
Date
: 특정 시점을 나타내는 클래스 (구식)Calendar
: 날짜와 시간을 조작하기 위한 클래스GregorianCalendar
: 그레고리력을 기반으로 한 구현
예제: Calendar
사용
import java.util.Calendar;
public class DateExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println("현재 연도: " + calendar.get(Calendar.YEAR));
System.out.println("현재 월: " + (calendar.get(Calendar.MONTH) + 1));
System.out.println("현재 일: " + calendar.get(Calendar.DAY_OF_MONTH));
}
}
3. 랜덤 숫자 생성
java.util.Random
클래스를 사용하여 난수를 생성할 수 있습니다.
예제: 난수 생성
import java.util.Random;
public class RandomExample {
public static void main(String[] args) {
Random random = new Random();
System.out.println("랜덤 숫자: " + random.nextInt(100)); // 0 ~ 99 사이의 정수
}
}
4. 기타 유틸리티 클래스
Arrays
: 배열 조작 유틸리티Objects
: 객체 비교, 해시코드 생성 등Scanner
: 입력 처리StringTokenizer
: 문자열 분리
Java 시간 처리 및 java.time
패키지
Java 8부터는 java.time
패키지가 도입되어, 날짜와 시간을 더 안전하고 직관적으로 처리할 수 있습니다.
1. 주요 클래스
LocalDate
: 날짜만 처리 (예: 2024-11-23)LocalTime
: 시간만 처리 (예: 22:17:30)LocalDateTime
: 날짜와 시간 모두 처리 (예: 2024-11-23T22:17:30)ZonedDateTime
: 시간대 포함Duration
: 시간 간격Period
: 날짜 간격DateTimeFormatter
: 날짜/시간 포맷 변환
2. 예제: java.time
사용
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class TimeExample {
public static void main(String[] args) {
// 현재 날짜와 시간
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
System.out.println("현재 날짜: " + date);
System.out.println("현재 시간: " + time);
System.out.println("현재 날짜와 시간: " + dateTime);
// 특정 날짜 생성
LocalDate specificDate = LocalDate.of(2023, 12, 25);
System.out.println("특정 날짜: " + specificDate);
// 날짜 포맷팅
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
System.out.println("포맷팅된 날짜: " + date.format(formatter));
}
}
Timer/TimerTask
Timer
와 TimerTask
는 작업을 예약하고 반복 실행하는 데 사용됩니다.
1. 주요 클래스
Timer
: 스케줄링 클래스TimerTask
: 실행할 작업 정의
2. schedule()
메서드
- 단일 실행:
schedule(TimerTask task, long delay)
- 반복 실행:
schedule(TimerTask task, long delay, long period)
3. 예제: Timer와 TimerTask 사용
import java.util.Timer;
import java.util.TimerTask;
public class TimerExample {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("작업 실행!");
}
};
// 2초 후 실행
timer.schedule(task, 2000);
// 3초 후부터 1초 간격으로 반복 실행
timer.scheduleAtFixedRate(task, 3000, 1000);
}
}
ScheduledExecutorService
Java 5 이상에서는 ScheduledExecutorService
를 권장합니다.
장점:
- 다중 스레드 처리
- 더 정교한 제어
- 안정성
예제: ScheduledExecutorService
사용
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class SchedulerExample {
public static void main(String[] args) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
Runnable task = () -> System.out.println("스케줄된 작업 실행!");
scheduler.scheduleAtFixedRate(task, 1, 2, TimeUnit.SECONDS);
}
}
추가 팁
- Java 8 이상에서는
java.time
패키지를 우선적으로 사용하세요. - 복잡한 예약 작업에는
ScheduledExecutorService
를 활용하세요. - 예외 처리 및 리소스 해제 (
cancel()
,shutdown()
)를 잊지 마세요.
'코딩스터디 > JAVA스터디' 카테고리의 다른 글
Java) 기본 API클래스 (0) | 2024.11.22 |
---|---|
Java 람다식 (0) | 2024.11.21 |
Java 제네릭 (1) | 2024.11.20 |
Java) I/O (0) | 2024.11.19 |
Java 애노테이션 (3) | 2024.11.18 |