TIL

230203 [Java] (예외처리 / 래퍼 클래스 / 컬렉션 프레임워크)

하차모 2023. 2. 3. 17:25

1. 예외처리

  예외가 발생했을 때 try catch문으로 처리할 수 있다.

  문법 : 

try {
	//예외가 발생할 소지가 있는 코드를 작성
} catch (Exception e) { //-> 예외 발생에 대한 정보가 담기는 객체
	//예외가 발생했을 때 처리 코드 작성
} finally {
	//예외가 발생하든, 발생하지 않든 무조건 실행되는 코드
}

  try catch문으로 예외처리했을 때 예외가 발생하더라도 코드를 멈추지 않고 끝까지 실행하며, catch문의 코드를 동시에 실행한다.

try {

} catch (Exception e) {
    //e.getMessage() -> 예외 발생 이유를 문자열로 리턴
    System.out.println(e.getMessage());
    //e.printStackTrace() -> 예외 발생 위치, 이유를 출력
    e.printStackTrace();
}

  예외의 종류는 다양하다. 자바에서는 다양한 예외를 클래스로 관리하는데, 발생할 수 있는 예외마다 실 일어날 수 있는 예외마다 catch문을 여러 개 써서 실행되는 코드가 다르게 할 수 있다.

try {
    System.out.print("숫자 입력 : ");
    int a = sc.nextInt();
    System.out.print("숫자 입력 : ");
    int b = sc.nextInt();

    System.out.println("a / b = " + (a / b));
} catch (ArithmeticException e) { //정수를 0으로 나눴을 때
    System.out.println("0으로 나눌 수 없습니다");
} catch (InputMismatchException e) { //입력한 자료형이 잘못되었을 때
    System.out.println("숫자를 입력하세요");
}

 

 

2. 래퍼 클래스

  기본 자료형을 클래스로 만들어 놓은 것

  (Byte / Short / Integer / Long / Float / Double / Character / Boolean)

 

 

3. 컬렉션 프레임워크

  많은 양의 데이터를 효율적으로 관리(쓰기, 읽기)하는 기능을 제공하는 인터페이스와 클래스

  종류 - 데이터를 읽고 쓰는 방식에 따라 크게 4가지 제공

    Set, List, Queue, Map 인터페이스

    - Set : 데이터에 순번이 없고, 중복 불가

    - List : 데이터에 순번이 존재하고, 중복 가능

      List 인터페이스를 구현하여 제공하는 클래스 2종 : ArrayList, LinkedList

 

  3-1. ArrayList

    데이터가 여러 개 저장될 수 있는 공간(배열과 비슷하지만 길이가 정해지지 않음)

    같은 자료형의 데이터만 들어갈 수 있음

    <>안에는 저장할 데이터의 자료형을 지정

    List에 저장될 데이터의 자료형으로 기본 자료형은 불가 -> 기본 자료형 사용할 때는 래퍼 클래스 사용

public class List01 {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();
        List<String> list = new ArrayList<>(); // 보통 이 문법을 사용함

        //데이터 저장
        list.add("java");
        list.add("c++");
        list.add("python");
        list.add("python");

        //데이터 삭제
        list.remove(0);

        //데이터 읽기
        list.get(0); //c++

        //list에 저장된 데이터의 개수
        list.size(); //3

		//전체 데이터 출력
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}