코딩하는 털보

11 to 9, Day 3 본문

Diary/Eleven to Nine

11 to 9, Day 3

이정인 2021. 2. 23. 21:08

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를 공부하고 마무리 해야 할듯.

그리고 토이 프로젝트 다시 진행 시작!

Comments