프로그램 실행 중 어떤 원인에 의해 오작동을 하거나 비정상적으로 종료되는 경우
특정 상황 발생 시 프로그램이 중단되는 현상으로, 프로그램 코드에 의해 해결할 수 있는 에러
오타, 문법, 자료형 체크 등에서 오류 발생 시 나타난다
Object > Throwable > Error / Exception
RuntimeException/ CloneNotSupportException/ InterruptedException/ NotSuchMethodException/ ClassNotFoundException/ IOException
자바는 모든 프로그램에서 반드시 예외 처리가 필요하나 RuntimeException은 예외 처리 생략 가능
try {
예외 발생 가능성이 있는 코드
} catch(예외클래스 e) {
예외클래스의 예외가 발생하는 경우 실행될 코드
} finally {
예외 발생 여부와 상관없이 무조건 실행
}
void 메소드명() throws 예외클래스명{
}
예외클래스에서 예외처리를 하지 않으면 에러가 발생한다
throw new 예외클래스();
main 메소드에서 throws Exception을 하면 메소드를 호출하는 JVM에서 처리가 일어남
class 클래스명 extends 예외클래스 {
}
이를 사용하려면 throw new 클래스명("예외메세지");
import를 하지 않아도 사용가능한 패키지 ex. String, System, Object 클래스
메소드명 | 설명 |
---|---|
equals(Object obj) | 같은 객체인지 비교 |
hashCode() | 해시코드 리턴 |
toString() | 문자열 정보 리턴 |
clone() | 복제한 객체 리턴 |
finalize() | 객체 소멸 시 진행 |
getClass() | 클래스 정보 리턴 |
메소드명 | 설명 |
---|---|
equals(Object obj) | 같은 문자열인지 비교 |
indexOf(String str) | 문자열 내 매개변수의 위치 리턴 |
subString(int start[,int end]) | 문자열 중 지정한 위치를 잘라내 리턴 |
trim() | 앞/뒤 공백 제거 |
length() | 문자열 길이 리턴 |
replace(String old,String new) | 문자열 중 old를 new로 치환 |
split(String s) | 문자열을 s로 구분해서 배열로 리턴 |
equals() 같은 메소드는 Object 클래스의 하위 클래스인 String 클래스가 메소드를 재정의한 것
사용 시 변수.equals(값)
으로 사용하기 보다 값.equals(변수)
의 형태로 사용한다.
왜냐하면 변수가 null일 수도 있기 때문에 Exception을 예방하기 위함이다
문자열에서 공백 없애기
" asdfs daf ags".replace(" ","");
기본 자료형 | Wrapper 클래스 |
---|---|
int | Integer |
long | Long |
float | Float |
double | Double |
byte | Byte |
char | Character |
short | Short |
boolean | Boolean |
기본 자료형과 참조 자료형은 서로 대입할 수 없다
클래스명 | 설명 |
---|---|
Random | 랜덤수를 생성 |
Scanner | 문자 입력 |
Date | 날짜/시간 표현 |
Calendar | 날짜/시간 표현 |
Arrays | 배열 관련 처리 |
Date 클래스는 Calendar 클래스의 하위버전. 서로 형변환 가능하다
클래스명 | 설명 |
---|---|
DecimalFormat | 숫자 포맷 지정 |
SimpleDateFormat | 날짜/시간 포맷 지정 |
둘 다 숫자나 날짜 타입을 문자열 포맷으로 지정하여 출력