예외는 두 가지 종류 :
일반 예외, exception 그리고 실행 예외 runtime exception
예외 처리 코드란 : 프로그램에서 예외가 발생 하였을 때 갑작스러운 종료를 막기위해 처리하는 코드.
NullPointerException = 객체 참조가 없을때!
ArrayIndexOutOfBoundsException = 배열에서 인덱스 범위를 초과했을때
NumberFormatException = 문자열인데 숫자로 변경했을때
ClassCastException = 안맞는 타입 변환(casting)을 했을 경우. Instanceof 활용 ok
모든 예외 객체는 exception를 상속하기 때문에 exception에 있는 getMessage 그리고 printStackTrace를 많이 사용한다
getMessage는 오류 메시지를 얻고,
printStackTrace는 오류의 경로를 추적할 때 사용한다
throw는 강제로 예외를 발생하는 것
throws는 예외의 책임을 다른데에 전달하는 것
java.lang안에 있는 클래스는 import할 필요가 없다
object는 자바의 최상위 부모 클래스
object의 equals의 원리는 모든 객체는 object를 상속받아서 비교할 때 자동으로 object타입으로 형변환이된다.
객체 해시코드란 객체를 식별할 하나의 정수값을 말한다.
System은 다 정적으로 이루어져있다
String은 내부 문자열을 수정할 수 없다, 그래서 수정을 할 때 마다 새로운 객체를 생성하는것이며, 메모리에 과부화, 즉 성능 저하가 될 요인이 될 수 있다.
그래서 stringbuilder 그리고 stringbuffer를 사용하는 것이 바람직하다.
Stringbuilder와 stringbuffer의 큰 차이점은 stringbuffer는 multi-thread 환경에서 사용할 수 있도록 동기화가 되었있다.
Calendar은 추상 클래스여서 정적인 getInstance를 통해 생성이가능하다. 그 이유는 각 지역마다 사용하는 시간법이 달라서, 만약 한국인데 la시간을 사용하고 싶다면 TimeZone를 사용하며 된다. TimeZone.getAvailableIDs();를 사용하면 가능한 timezone들이 보인다.
MessageFormat.format(문자열, 해당 value);
'IT > ETC' 카테고리의 다른 글
이것이 자바다 노트3(제너릭) (1) | 2019.12.14 |
---|---|
이것이 자바다 노트2(스레드 + 멀티스레드) (0) | 2019.12.14 |
Garbage Collector (0) | 2019.12.01 |
Comparable vs Comparator (0) | 2019.12.01 |
Algorithm time complexity (2) | 2019.12.01 |