JAVA 공부

기본 API

Rocomi 2024. 7. 5. 18:44

자바에서 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 문서는 각 클래스의 메서드와 사용 예제를 상세히 설명하고 있어 매우 유용합니다.

 
 
4o