11 to 9, Day 3
Today, ToDoList
-
자바 라이브 스터디
-
13주차 다시보기
-
14주차 공부하기
-
13주차 리뷰
BufferedStream 을 사용하는 이유?
-> 버퍼에 모아서 보내거나 받을 때 왜 빠를까? -> I/O입출력은 OS 레벨의 시스템 콜인데, 버퍼를 사용하면 이 콜 자체를 줄일 수 있기 때문이다.
주방에서 물컵에 한 모금씩 물을 떠오는 것 보다 한 컵을 채워 떠오는 것이 빠른데 주방에 왔다갔다하는(시스템 콜) 시간이 줄어들기 때문이다.
생각보다 성능 차이가 크기때문에 BufferedStream 을 사용하는 것을 추천!
Direct Buffer vs Non direct Buffer
구분Direct BufferNon Direct Buffer
사용공간 | OS의 메모리 | JVM 힙 메모리 |
버퍼의 생성속도 | 느리다 | 빠르다 |
버퍼의 크기 | 크다 | 작다 |
I/O 성능 | 높다 | 낮다 |
Use | 한번 생성한 뒤 재사용을 할 경우 | 빈번하게 계속해서 사용해야 할 경우 |
[출처] 온라인 자바 스터디#13- NIO의 버퍼, 채널, 셀렉터, 파일 입출력 예제|작성자 슝스
ByteBuffer 클래스를 사용하면 Direct Buffer를 생성하고 접근할 수 있다.
데코레이터 패턴
java.io의 보조 스트림은 데코레이터 디자인 패턴의 대표적인 예이다.
직렬화
이사갈때 짐을 트럭에 실어올리는것이 Serialization 새로운 집에서 짐을 푸는것이 Deserialization.
14주차 공부하기
-
제네릭
-
제네릭을 사용하는 이유
-
자바 제네릭
-
-
제네릭 사용법
-
제네릭 클래스 선언하기
-
제네릭 타입 호출하기
-
다이아몬드
-
여러개의 타입 파라미터
-
raw 타입
-
-
제네릭 메소드
-
제네릭 주요 개념 (바운디드 타입, 와일드 카드)
-
바운디드 타입
-
까지 완료.
오늘 14주차 공부를 마무리 하지 못했다 ㅠㅠ
내일 와일드 카드와 Erasure를 공부하고 마무리 해야 할듯.
그리고 토이 프로젝트 다시 진행 시작!