자바 기본 API 소개 (java.lang, java.util 등)
KUKJIN LEE • 2개월 전 작성
Java는 개발자가 다양한 작업을 쉽게 처리할 수 있도록 강력한 기본 API를 제공합니다. 특히, java.lang
과 java.util
패키지는 자바 프로그래밍에서 가장 자주 사용되는 패키지로, 기본적인 데이터 타입, 수학적 연산, 컬렉션 프레임워크 등을 제공합니다.
1. java.lang
패키지
java.lang
패키지는 Java 프로그램에서 가장 기본적이고 필수적인 클래스들을 포함합니다. 이 패키지는 자동으로 임포트되며, 자주 사용하는 클래스들이 포함되어 있습니다.
주요 클래스
-
Object
클래스: 모든 자바 클래스의 최상위 부모 클래스입니다. 객체 생성, 비교, 복제, 해시코드 등을 처리할 수 있습니다.
Object obj = new Object();
-
String
클래스: 불변(immutable) 문자열을 다루기 위한 클래스입니다.
String str = "Hello, Java!";
-
Math
클래스: 수학적 연산(예: 제곱근, 절대값, 삼각함수 등)을 수행하는 유틸리티 메서드를 제공합니다.
int max = Math.max(5, 10); // 10 반환
-
Integer
,Double
등 Wrapper 클래스: 기본 데이터 타입(int, double 등)을 객체로 다룰 수 있게 하는 클래스들입니다.
Integer num = Integer.valueOf(10);
-
Thread
클래스: 멀티스레딩을 구현하기 위한 클래스입니다. 자바 프로그램에서 스레드를 생성하고 실행할 수 있습니다.
Thread t = new Thread();
t.start();
2. java.util
패키지
java.util
패키지는 자바에서 데이터를 다루는 데 유용한 여러 유틸리티 클래스들을 제공합니다. 특히 컬렉션 프레임워크와 날짜/시간 처리 클래스들이 포함되어 있습니다.
주요 클래스
-
ArrayList
,LinkedList
: 동적 배열을 구현한 클래스들로, 자바에서 리스트 형태의 데이터를 관리하는 데 사용됩니다.
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list); // 출력: [Java, Python]
-
HashMap
,HashSet
: 키-값 쌍을 저장하는HashMap
과 중복되지 않는 값을 저장하는HashSet
은 데이터 검색과 집합 연산을 수행하는 데 사용됩니다.
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
System.out.println(map); // 출력: {Apple=1, Banana=2}
}
}
위 코드에서 map.put("Apple", 1)
을 호출하면, "Apple"
이라는 키와 1
이라는 값이 HashMap
에 저장됩니다. 이때, HashMap
의 출력 형식은 {key=value, key=value}
형태로 나타납니다. map.put("Apple", 1)
이후에 map.put("Banana", 2)
를 호출하면 최종 출력은 {Apple=1, Banana=2}
가 됩니다.
-
Collections
클래스: 컬렉션을 정렬하거나 조작하는 데 유용한 정적 메서드를 제공합니다.
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
Collections.sort(list); // 리스트를 오름차순으로 정렬
System.out.println(list); // 출력: [Java, Python]
Iterator
,ListIterator
: 컬렉션에서 요소를 순차적으로 탐색할 수 있는 인터페이스입니다.
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next()); // 출력: Java, Python
}
-
Random
클래스: 난수를 생성할 때 사용됩니다.
Random rand = new Random();
int randomNum = rand.nextInt(100); // 0에서 99 사이의 난수 생성
System.out.println(randomNum); // 출력: 임의의 숫자 (예: 42)
3. java.io
패키지
java.io
패키지는 입출력(I/O) 작업을 위한 클래스들을 제공합니다. 파일이나 데이터 스트림을 다루는 데 유용합니다.
주요 클래스
-
File
클래스: 파일 및 디렉터리를 다루는 클래스입니다.
File file = new File("test.txt");
System.out.println(file.exists()); // 출력: 파일이 존재하면 true, 그렇지 않으면 false
-
BufferedReader
,BufferedWriter
: 파일이나 콘솔에서 텍스트를 읽거나 쓸 때 사용됩니다.
BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
String line = reader.readLine();
System.out.println(line); // 파일에서 읽은 첫 번째 줄 출력
4. java.nio
패키지
java.nio
는 Non-blocking I/O를 제공하는 패키지로, 대규모 파일 처리나 네트워크 통신에서 더 높은 성능을 제공합니다.
주요 클래스
-
ByteBuffer
: 바이트 데이터를 저장하고 조작하는 데 사용됩니다.
ByteBuffer buffer = ByteBuffer.allocate(1024);
System.out.println(buffer.capacity()); // 출력: 1024
-
Files
클래스: 파일 시스템에서 파일 복사, 이동, 삭제 등을 지원합니다.
Files.copy(Paths.get("source.txt"), Paths.get("destination.txt"));
5. java.time
패키지
java.time
패키지는 Java 8부터 추가된 최신 날짜와 시간 API를 제공합니다. 직관적이고 간편한 날짜/시간 처리 기능을 지원합니다.
주요 클래스
-
LocalDate
,LocalTime
,LocalDateTime
: 날짜와 시간을 처리하는 클래스들입니다.
LocalDate date = LocalDate.now();
System.out.println(date); // 출력: 오늘 날짜 (예: 2024-09-06)
LocalDateTime dateTime = LocalDateTime.now();
System.out.println(dateTime); // 출력: 현재 날짜와 시간 (예: 2024-09-06T14:30:15.123)
-
Duration
,Period
: 시간 간격을 표현하는 클래스들입니다.
Duration duration = Duration.ofHours(5); // 5시간 간격
System.out.println(duration.toHours()); // 출력: 5
Java의 기본 API는 자바 개발자가 다양한 작업을 효율적으로 처리할 수 있도록 필수적인 도구들을 제공합니다. java.lang
패키지는 자바 프로그래밍에서 가장 기본적인 클래스들을 제공하며, java.util
패키지는 컬렉션과 유틸리티 클래스들로 자주 사용됩니다. 이 외에도 java.io
, java.nio
, java.time
등은 파일 처리, 네트워크, 날짜/시간 처리 등을 위한 강력한 기능을 제공합니다.