본문 바로가기
Java

220119 혼자공부하는자바 Ch10~Ch14

by 행인데어 2022. 1. 19.

Ch10 예외처리

10-1) 예외클래스

예외와 예외클래스

일반예외: 자바 소스를 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사

실행 예외: 컴파일 과정에서 검사하지 않음. 클래스 상속 관계에서 부모(조상)에 RuntimeExxception이 있다면 실행 예외 클래스

자바에서는 예외를 클래스로 관리 -> JVM 프로그램 실행 도뭉에 예외가 발생하면 해당 예외클래스로 객체를 생성함

모든 예외클래스는 java.lang.Exception클래스를 상속받음

 

실행 예외

- NullPointerException

- ArrayIndexOutOfBoundsException

- NumberFormatException

- ClassCastException

10-2) 예외 처리

예외 처리 코드

- try-catch-finally 블록

예외 종류의 따른 처리 코드

- 다중 catch

- catch순서

예외 떠넘기기

- throws 키워드

 

Ch11 기본 API 클래스

11-1)  java.lang 패키지

API(Application Programming Interface)는 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음

- Object 클래스

- System 클래스

- Class 클래스

- String 클래스

- Wrapper 클래스

- Math 클래스

11-2) java.util 패키지

- Date 클래스

- Calendar 클래스

 

Ch12 스레드

스레드는 하나의 코드 실행 흐름

12-1) 멀티스레드

중첩 클래스:

클래스의 멤버로서 선언되는 중첩 클래스를 멤버클래스 - 클래스 or 객체가 사용 중이면 언제든지 재사용 가능

생성자 or 메소드 내부에서 선언되는 중첩 클래스를 로컬클래스 - 메소드 실행할 때만 사용, 메소드 종료 후 없어짐

12-2) 스레드 제어

 

Ch13 컬렉션 프레임워크

컬렉션은 객체의 저장, 프레임워크는 사용 방법을 정해놓은 라이브러리를 뜻함

자바는 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 인터페이스와 구현 클래스를 java.util패키지에서 제공하는데 이를 총칭해서 컬렉션 프레임워크라고 함.

13-1) 컬렉션 프레임워크

List컬렉션

- 객체 저장 순서O, 중복O

- 객체를 인덱스로 관리

- 저장 용량이 자동으로 증가

- 객체 저장할 때, 자동으로 인덱스 부여

- 객체를 저장하는 것이 아니라 객체의 번지를 참조함 -> 동일한 객체를 중복 저장하면 동일한 번지가 참조

- null이 저장되면 해당 인덱스는 객체를 참조하지 않음

- 추가, 삭제, 검색을 위한 다양한 메소드가 제공됨

- List인터페이스의 메소드: add, set, contains, get, size,,,

A- rrayList, LinkedList, Vector

 

Set컬렉션

- 객체 저장순서X, 중복 X -> 수학에서 집합과 비슷

- HashSet, LinkedHashSet, TreeSet 등

- 인덱스로 객체를 검색해서 가져오는 메소드가 없고,

   Iterater(반복자)를 사용해서 전체 객체를 대상으로 한번씩 반복해서 가져옴

  Set<String> set = ....;

  Iterator<String> iterator = set.iterator();

 

Map컬렉션

- Key와 Value로 구성된 Map.Entry 객체를 저장하는 구조를 가짐

- Entry는 Map 인터페이스 내부에 선언된 중첩 인터페이스

- 키는 중복 O, 값은 중복 X --> 만약 기존의 키와 중복저장되면 기존값은 없어지고 새로운 값으로 대체

- 저장된 전체 객체를 대상으로 하나씩 얻고 싶을 경우,

  1) KetSet() 메소드로 모든 키를 Set컬렉션으로 얻은 다음, 반복자를 통해 키를 하나씩 얻고 get()메소드를 통해 얻음

  2) entrySet()메소드로 모든 Map.Entry를 Set컬렉션으로 얻은 다음, 반복자를 통해 Map.Entry를 하나씩 얻고 getKey()와getValue()멧 ㅗ드를 이용해 키와 값을 얻음

 

13-2) LIFO와 FIFO컬렉션