Queue, Stack

1 minute read

2020-08-18 TLI

Internationalization(국제화) vs Localization(지역화)

  • 약자 : i18n, l10n
  • 한국어를 영어로 바꾸는 것이 국제화, 영어를 한국어로 바꾸는 것을 지역화라고 한다.

Queue

First In First Out(FIFO)

  • offer() 로 삽입한 값은 poll()을 통해 추출한다.
  • 맨 처음 넣은 것이 가장 먼저 나오는 선입선출을 따른다.(긴 통에 한쪽 끝에선 공을 넣고 다른 쪽 끝에선 공을 꺼내는 형상)
  • peek()은 조회만 하고 poll()은 조회를 한 값을 지운다.

Stack

First In Last out(FILO) 혹은 Last In First Out(LIFO)

  • push()로 삽입한 값은 pop()을 통해 추출한다.
  • 맨 나중에 넣은 것이 가장 먼저 나오는 후입선출을 따른다.(입구와 출구가 한곳밖에 없다. 통 안에 판을 하나씩 넣었다가 꺼내는 형상)

HashSet

HashMap

클래스 관계 (주어 가 목적어 를 사용/포함한다.) - 의존 관계

  • 01) 상속
  • 02) 연관(Association)
    • 지속성이 있다.
    • 사용체에서 피사용체로 화살표를 그린다.
    • 목적어를 사용하기 때문에 목적어 없이는 주어가 성립하지 않는다.
  • 03) 집합(Aggregation)
    • 사용체(빈 마름모)에서 피사용체로 화살표를 그린다.
    • lifecycle이 다르다.
      • 예) 컴퓨터와 모니터, 마우스, 키보드.
      • 예) 사람과 핸드폰.
      • 컨테이너가 사라질 때 아이템은 남는다.
    • 포함관계 (주어 가 목적어 를 포함한다. 능동목적어 쪽으로 화살표가 간다.)
  • 04) 합성(Compositon)
    • 사용체(채워진 마름모)에서 피사용체로 화살표를 그린다.
    • lifecycle이 같다.
      • 예) 컴퓨터와 메인보드, 파워서플라이.
      • 예) 사람과 심장.
      • 링크드리스트 -> 노드
      • 컨테이너가 사라질 때 아이템도 사라진다.
    • 포함관계 (주어 가 목적어 를 포함한다. 능동목적어 쪽으로 화살표가 간다.)
  • 05) 의존(Dependency)
    • 사용체에서 피사용체로 실선으로 화살표를 그린다.
    • 특정 메소드에서만 사용되는 관계(기능을 사용하려면 일시적으로 의존하는 수 밖에 없다.)

의존객체(쓰임을 당하는 객체)

  • 의존 관계에서 사용을 당하는 객체를 의존객체(Dependency Object)라고 한다.

동기화와 비동기화

  • 동기화가 되어 있으면 하나의 스레드가 특정 코드에 접속할 때 락으로 잠근다.
  • 작업을 끝내고 락을 풀면 다른 스레드가 접속할 수 있다.
  • StringBuilder는 동기화가 되어 있지만 No guarantee이다.(다른 스레드가 접속해서 문자열을 추가하는 것을 막지 않는다.)
  • 로컬 변수일 경우는 여러 스레드가 접속할 수 없기 때문에 StringBuffer(락을 걸고 개런티가 있음)가 아니라 StringBuilder로 충분하다.

Categories:

Updated: