기본 API
자바에서 API(Application Programming Interface)는 자바 플랫폼에서 제공하는 표준 라이브러리로, 자주 사용되는 기능을 손쉽게 구현할 수 있도록 도와줍니다. 자바의 기본 API는 수많은 클래스와 인터페이스로 구성되어 있으며, 다양한 기능을 제공합니다. 여기서는 자바의 주요 패키지와 그 안에 포함된 중요한 클래스들을 중심으로 기본적인 API에 대해 설명하겠습니다.
1. java.lang 패키지
java.lang 패키지는 자바 프로그램의 기본적인 클래스들을 포함하고 있습니다. 이 패키지는 자동으로 임포트되므로 별도의 임포트 문 없이 사용할 수 있습니다.
주요 클래스
- Object: 모든 자바 클래스의 최상위 클래스입니다. 객체의 기본적인 메서드(예: toString, equals, hashCode)를 제공합니다.
- String: 문자열을 나타내는 불변 클래스입니다. 문자열 조작을 위한 다양한 메서드를 제공합니다.
- Math: 수학 연산을 위한 메서드를 제공합니다. (예: sqrt, pow, sin, cos)
- System: 표준 입력, 출력, 오류 스트림을 관리하고 시스템 속성을 가져오는 메서드를 제공합니다. (예: System.out.println, System.currentTimeMillis)
- Thread: 멀티스레딩을 지원하는 클래스입니다. 스레드를 생성하고 제어하는 데 사용됩니다.
2. java.util 패키지
java.util 패키지는 유틸리티 클래스들을 포함하고 있으며, 컬렉션 프레임워크, 날짜와 시간 클래스 등이 포함되어 있습니다.
주요 클래스
- ArrayList, LinkedList: 동적 배열과 연결 리스트를 구현하는 클래스입니다. 컬렉션 프레임워크의 일부입니다.
- HashMap, TreeMap: 키-값 쌍을 저장하는 맵 컬렉션입니다.
- HashSet, TreeSet: 중복을 허용하지 않는 집합 컬렉션입니다.
- Collections: 컬렉션 객체를 조작하기 위한 정적 메서드를 제공합니다. (예: sort, shuffle, reverse)
- Date, Calendar: 날짜와 시간 정보를 관리하는 클래스입니다.
- Random: 난수 생성을 위한 클래스입니다.
3. java.io 패키지
java.io 패키지는 입출력을 위한 클래스들을 포함하고 있습니다. 파일 입출력, 데이터 스트림 처리 등을 지원합니다.
주요 클래스
- File: 파일과 디렉토리를 나타내는 클래스입니다. 파일 생성, 삭제, 정보 조회 등을 할 수 있습니다.
- FileInputStream, FileOutputStream: 파일의 바이트 스트림을 읽고 쓰기 위한 클래스입니다.
- BufferedReader, BufferedWriter: 문자 스트림을 버퍼링하여 읽고 쓰기 위한 클래스입니다. 성능을 향상시킬 수 있습니다.
- ObjectInputStream, ObjectOutputStream: 객체 직렬화와 역직렬화를 위한 클래스입니다.
4. java.nio 패키지
java.nio(New I/O)는 보다 효율적인 입출력을 제공하기 위한 클래스들을 포함하고 있습니다.
주요 클래스
- ByteBuffer, CharBuffer: 바이트와 문자를 위한 버퍼 클래스입니다. 직접 메모리 접근을 통해 빠른 입출력을 제공합니다.
- Files: 파일 시스템 작업을 위한 유틸리티 클래스입니다. 파일 복사, 이동, 삭제 등을 할 수 있습니다.
- Path: 파일 경로를 나타내는 클래스입니다.
5. java.net 패키지
java.net 패키지는 네트워크 관련 클래스들을 포함하고 있습니다. 소켓 통신, URL 처리 등을 지원합니다.
주요 클래스
- Socket: TCP 소켓 통신을 위한 클래스입니다.
- ServerSocket: 서버 소켓을 생성하고 클라이언트 연결을 수락하는 클래스입니다.
- URL: URL을 나타내는 클래스입니다. 네트워크 리소스에 접근할 수 있습니다.
- HttpURLConnection: HTTP 프로토콜을 사용하여 URL 연결을 관리하는 클래스입니다.
6. java.awt 및 javax.swing 패키지
이 패키지들은 GUI(Graphical User Interface)를 만드는 데 사용됩니다. java.awt는 원시 위젯 도구 키트이고, javax.swing은 보다 풍부한 GUI 구성 요소를 제공합니다.
주요 클래스
- Frame, Panel, Button, TextField (java.awt) : 기본적인 GUI 구성 요소입니다.
- JFrame, JPanel, JButton, JTextField (javax.swing) : 스윙 기반의 GUI 구성 요소입니다.
7. java.sql 패키지
java.sql 패키지는 데이터베이스와의 연동을 지원하는 클래스들을 포함하고 있습니다.
주요 클래스
- Connection: 데이터베이스 연결을 나타내는 클래스입니다.
- Statement, PreparedStatement: SQL 문을 실행하는 클래스입니다.
- ResultSet: 쿼리 결과를 나타내는 클래스입니다.
예제 코드
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 32 33 34 35 36 37 38 39 40 | import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Map; public class BasicAPIExample { public static void main(String[] args) { // java.lang 패키지 String message = "Hello, World!"; System.out.println(message); // java.util 패키지 ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(3); numbers.add(1); numbers.add(2); Collections.sort(numbers); System.out.println("Sorted numbers: " + numbers); // java.util.Date Date now = new Date(); System.out.println("Current date and time: " + now); // java.util.HashMap Map<String, Integer> map = new HashMap<>(); map.put("apple", 3); map.put("banana", 2); System.out.println("Map: " + map); // java.io 패키지 (파일 입출력은 예제 생략) // java.nio 패키지 (버퍼 사용 예제 생략) // java.net 패키지 (네트워크 예제 생략) // javax.swing 패키지 (GUI 예제 생략) } } | cs |
위 예제에서는 java.lang, java.util 패키지의 일부 클래스들을 사용하여 기본적인 기능을 구현하고 출력합니다. 각 패키지와 클래스의 더 자세한 사용법은 공식 자바 문서와 자바 API 문서를 참고하면 되며, 자바 API 문서는 각 클래스의 메서드와 사용 예제를 상세히 설명하고 있어 매우 유용합니다.