코딩하다가 특정 필요한 기능이 있어서 구글 검색을 해봤더니, 자바 유틸 클래스에서 지원하는 기능이였다.
자바 유티클래스를 전부 알 순 없지만, 패키지별로 대충 어떤 기능들을 지원하는지 알아 놓으면 나중에 검색하기 쉬울 것 같아서 패키지를 훑어보게 됐다.
Java 외부 라이브러리는 다양한 기능들이 있다.
그 중 util
패키지를 잠깐 훑어 봤다.
Java
가 지원하는 다양한 기능
util
패키지
util
의 패키지는 다음과 같다
멀티스레딩 및 병렬 프로그래밍 지원
- 주요 클래스
ExecutorService, Executors: 스레드 풀 관리.
ConcurrentHashMap, CopyOnWriteArrayList: 스레드 안전한 컬렉션.
Future, Callable: 비동기 연산 결과를 처리.
CountDownLatch, CyclicBarrier, Semaphore: 동시성을 위한 동기화 도구.
함수형 프로그래밍 지원
- 주요 인터페이스
Function, BiFunction: 일반적인 함수를 나타냄.
Predicate: 조건문(논리) 표현.
Consumer, BiConsumer: 입력을 받고 반환하지 않는 연산.
Supplier: 특정 타입의 결과를 제공.
JAR 파일 작업 지원
- 주요 클래스:
JarFile, JarEntry: JAR 파일과 그 내용을 읽는데 사용.
난수 생성 지원
- 주요 클래스:
Random: 다양한 유형의 난수 생성.
ThreadLocalRandom: 현재 스레드에 대한 난수 생성기.
정규 표현식을 통한 문자열 처리
- 주요 클래스:
Pattern, Matcher: 정규 표현식 컴파일 및 문자열 매칭.
서비스 제공자 인터페이스
- 주요 사용: 주로 Java 플랫폼 내부에서 사용되며, 사용자 정의 서비스 제공자를 등록하고 사용할 수 있도록 함.
스트림 API를 통한 컬렉션 처리
- 주요 클래스:
Stream, IntStream, LongStream, DoubleStream: 다양한 유형의 스트림을 처리.
Collectors: 스트림의 결과를 다양한 형태로 수집.
압축 파일 처리
- 주요 클래스:
ZipFile, ZipEntry: ZIP 파일 읽기.
ZipOutputStream, ZipInputStream: ZIP 파일 작성 및 추출.
- (기본 java.util 패키지에는 Collections, Arrays, Objects 등의 다양한 유틸리티 클래스가 포함되어 있습니다. 이 클래스들은 일반적인 컬렉션 작업, 배열 조작, 객체 비교 등을 용이하게 합니다.)