목록웹프로그래밍/Java (18)
bdfgdfg

자바에는 컬렉션 클래스가 존재한다. 간단히 말하면 자료구조를 모아놓은 클래스들. 구현된 자료구조 클래스들(파랑색)은 각각의 인터페이스를 상속받아 구현되어 있따. 주로 Hash가 붙은것들은 해시테이블로 구현되어있고, Tree,Sorted가 붙은것은 완전이진탐색트리(레드-블랙트리)로 구현되어 있다. -> 키(Key)가 필요한 Map 인터페이스를 상속받는 Hash 클래스는 키가 사용자 정의 클래스라면 hashcode를 구현해야하며, SortedMap은 comparator를 구현해주어야 한다. 이러한 자료구조 컬렉션 클래스들은 이미 구현된걸 가져다 쓰는 편리함도 있고, 공통된 인터페이스를 구현하였기에(Collection,Map) 가독성도 높다는 장점이 있다. List인터페이스 List인터페이스는 중복을 허용하면..
자바의 날짜와 시간과 관련된 클래스는 Date -> Calendar -> java.time에 속한 클래스의 순서로 발전해왔다고 한다. 상대적으로 빈약한 Date와 그보다 더 발전한 Calendar. 다만 몇가지의 단점으로 인해 java.time패키지에 속한 클래스들이 기존의 단점을 개선한 버전으로 나왔다곤 하지만.. 이미 Date와 Calendar가 오래 사용되어 왔기에 가볍게 보고는 가야한다. Calendar / GregorianCalendar Calendar는 추상클래스이기에 직접 객체를 생성할 수 없고 메소드를 통해 완전히 구현된 클래스의 인스턴스를 얻어야 한다고 한다. import java.io.FileInputStream; import java.util.*; public class Hello {..

모든것을 외울필요는 당연히 없고, 유용해보이는것들 작성 혹은 중요한 개념이라고 생각되는것들만 작성. Object클래스 모든 클래스의 최상위 부모. clone() : 객체 자신의 복사본을 만든다. -> 예전에는 clone()후 앞에 형변환을 직접 해주어야 했는데, 공변 반환 타입을 통해 clone()을 오버라이딩 했을 때 반환타입을 실제로 반환되는 타입으로 반환 가능하다. -> 또한 clone()은 일반적으로 얕은복사. 그렇기에 복제할 대상의 인스턴스가 멤버로 클래스 멤버변수를 가지고 있다면 깊은 복사 처리가 될 수 있도록 처리해주어야 한다. wait() : 다른 쓰레드가 notify를 호출할때까지 현재 쓰레드는 무한 대기 및 매개변수로 넣은 시간동안 대기. hashcode() -> 해싱 기법에 사용되는 ..

예외처리란 런타임에 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것을 의미. -> 프로그램의 갑작스런 비정상종료를 막고, 다시 정상적인 상태로 복구 시키기 위함. 자바는 런타임에 발생할 수 있는 프로그램 오류를 에러와 예외 두 가지로 분류한다. 에러는 메모리 부족(OutOfMemoryError)나 스택오버플로우(StackOverFlowError)와 같이 발생 시 복구할 수 없는 심각한 오류 예외는 발생되더라도 수습가능한 상대적으로 덜 심각한 오류. 여기서 위의 예외를 핸들링하는 방법인 예외처리를 배워본다. 예외 클래스 계층구조 RuntimeException 클래스들은 프로그래머의 실수에 의해 발생가능한 예외들과 연관이 있다. -> ex) 배열 크기를 넘어선 인덱스 접근, null 접..