본문 바로가기

Java

(24)
Interface를 이용하여 Callback 구현하기 정의 Caller가 Callee를 호출하는 것이 아니라 Callee가 Caller를 호출하는 것 예를 들어, 파일을 읽는 function에 읽고 난 후 처리해야 할 로직을 파라미터로 넘겨주면, 해당 function 안에서 파일 관련 처리를 다하고 파라미터로 넘어간 로직이 실행이 된다. 왜 사용함? 비동기적으로 처리가 가능하고, 코드 재사용성이 가능함 ( 함수 추상화가 가능함 ) 그래서 UI나 비동기 처리 시스템에서 많이 사용한다.
close() 함수 Stream이란? 우리가 키보드에 A를 입력한 경우 화면에 A가 출력이 되는데, 키보드의 A가 입력됐음을 듣고 파일에 A를 전송해주는 것을 누가할까? 바로 입출력을 도와주는 Stream이다. 키보드 뿐만 아니라, 프린트,마우스, 기타 기기들의 입출력을 도와준다. 사용자의 입장에서 입력을 하면 InputStream, 데이터가 나가면 OutputStream이 있다. InputStream은 Stream으로 데이터를 보냅니다. OutputStream은 Stream에 있는 데이터들을 목적지( e.g. 파일 )로 보내버립니다. ( flush()가 다음과 같은 역할을 합니다. ) 우리는 하드웨어적인 복잡한 과정을 신경쓰지 않고 Stream을 사용하기만 하면 됩니다. InputStream - close() 동작 과정 ..
Java Collections (1) 자바의 Collection을 사용할 때 어떠한 상황에서 써야할 지 모른채 써왔다. Map,Table 중 어떤 것이 thread-safe한지도 모르고 등등... 그래서 자바 Collection들에 대해 정리해 볼 필요를 느꼈다.자바에서 제공하는 Collection Framework들은 대부분 Collection interface의 구현체이다. ( Map 종류들은 제외 )조건을 만족하는 item 삭제하기 - Java 8에 추가된 함수 : removeIf() - Loop 내에서 remove 하기 - Loop 내에서 잘못된 remove * ConcurrentModificationException은 누가 어떻게 던지나? -
Nashorn Nashron : 자바 프로그램에서 사용할 수 있는 자바스크립트 엔진http://opennote46.tistory.com/210 참고 ( TODO )