열거형
상수들을 관리하기 위함
타입에 대한 안정성을 보장
- 아직 활용을 해보지 않아 몸소 와닿지 않는다.
제네릭
해시맵이나 어레이리스트를 생성해보면 ArrayList<> ?? = new ArrayList<>(); 이런식으로 선언이 된다.
여기서 <> 이 안에 고정값이 아닌, String 이나 Integer 참조타입을 사용자가 원하는 타입을 넣을 수 있다. 이 같은 기능을 제네릭이라고 한다.
설정으로 ArrayList가 밑에 코드인거 처럼 가정한다면, <> T라고 선언을 하면 어떤 타입으로든 받을수 있다.
class ArrayList<T> {
private T item;
public ArrayList(T item) {
this.item = item;
}
public T getItem() {
return item;
}
public void setItem(T item) {
this.item = item;
}
}
그렇다면 <> 안에는 왜 int 나 char 기본타입은 왜 넣을 수 없을까?
- 고민해보는 걸로....
일단 <> 안에는 참조타입만 선언 가능.
예외처리
1. 내부적인 요인 - 개발자의 코드 실수
2. 외부적인 요인 - 하드웨어 문제, 네트워크, 사용자의 잘못된 값 입력 등
1.1 발생시점에 따른 에러
1.1.1 컴파일 에러 : 실행하기 전 코드 실수 ( 개발환경에서 컴파일 하기 전에 경고를 통해 알 수 있음 )
1.1.2 런타임 에러 : 실행이 되고 잘 못된 값에 접근하거나 NULL 값에 접근하는 등의 에러
-> try - catch 블럭을 통하여 런타임 에러가 발생할 가능성이 있는 코드를 try문 안에 넣어 준다.
-> catch 블럭에서는 에러에 대한 처리를 한다.
try {
System.out.println("null 값 접근시 나오는 예외");
printMyName(null); // (1) 예외 발생
}
catch NullPointerException e) { // (2) catch문 = null 잡는 catch문 설정
System.out.println("NullPointerException 발생!");
}
static void printMyName(String str) {
String upperCaseAlphabet = str.toUpperCase();
System.out.println(upperCaseAlphabet);
}
컬렉션 프레임워크
- 특정 자료 구조에 데이터를 추가하고, 삭제, 수정, 검색하는 등의 동작을 수행하는 편리한 메서드들을 제공해준다.
Ex) 손님 배열을 설정할 때 배열길이가 손님의 수 만큼 설정해야하는데 손님의 수는 미리 알수가 없다.
그래서 배열을 손님이 올때마다 늘려서 생성해주거나, 처음부터 엄청난 길이의 배열을 생성해줘야 한다.
해결책 -> ArrayList라는 컬렉션 프레임워크를 사용하면 자동으로 배열의 길이를 늘려주고 줄여주고 한다.
컬렉션 프레임워크의 구조
ArrayList
데이터를 순차적으로 추가, (검색 유리)
중간에 있는 데이터를 추가,삭제 할 때 불리
메모리주소에서 몇번째인지 알 수 있으니깐
메모리주소 + (int * 몇번째)
LinkedList
찾으려는 값이 몇번째 인지 모름 -> 양옆 요소으로만 확인 (검색 불리)
중간에 값을 삭제하거나 추가할 때 유리 -> 양옆 요소만 바꿔주거나 추가하면 됨
'부트캠프 > 코드스테이츠 백엔드부트캠프 43기' 카테고리의 다른 글
코드스테이츠 백엔드 부트캠프 43기 (18일차-스트림 회고) (2) | 2023.01.09 |
---|---|
코드스테이츠 백엔드 부트캠프 43기 (16,17일차-자바 심화 회고) (0) | 2023.01.07 |
코드스테이츠 백엔드 부트캠프 43기 (13일차-버거퀸 프로젝트 회고) (2) | 2023.01.02 |
코드스테이츠 백엔드 부트캠프 43기 (11,12일차-객체지향심화 회고) (0) | 2022.12.31 |
코드스테이츠 백엔드 부트캠프 43기 (9일차-객체지향 회고) (0) | 2022.12.27 |
댓글