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));
}
}
}
'TIL' 카테고리의 다른 글
| 230207 [Java, Html] (Set / Map / 태그 / table) (0) | 2023.02.07 |
|---|---|
| 230206 [Java] (List / ArrayList) (0) | 2023.02.06 |
| 230202 [Java] (String 클래스 / 인터페이스) (0) | 2023.02.02 |
| 230201 [Java] (다형성 / 형 변환 / 메소드 오버라이딩 / Object 클래스) (0) | 2023.02.01 |
| 230131 [Java] (static / 오버로딩 / 상속) (0) | 2023.01.31 |