1 minute read

1. Entry Point

  • 엔트리 포인트(Entry Point)란 프로그램이 시작되는 시작점을 의미한다.

  • main
    다수의 프로그래밍 언어에서 main 함수가 엔트리 포인트로 사용된다. (ex c, c++, java 등)

  • 다만, 스크립트 언어의 경우 정해진 엔트리 포인트는 main 함수가 아닌 인터프리터가 코드를 읽기 시작한 부분부터 진행된다.(예: python, javascript 등)

  • java의 엔트리 포인트
    java의 경우 API에서는 public static void main (String[] args) 단 한개만 엔트리 포인트로 정의했기 때문에, 오버로딩 된 다른 형태의 main함수는 엔트리 포인트로 동작하지 않는다.

2. 컬렉션 Collection

  • 데이터의 집합을 의미한다.

  • 배열이 가진 고정 크기의 단점을 극복하기 위해 객체들을 쉽게 삽입, 삭제, 검색할 수 있는 가변 크기의 container이다.
  • 데이터를 저장, 회수, 조작하기에 용이함
  • 가변 크기로서 객체의 개수를 염려할 필요 없음
  • 컬렉션 내의 한 객체가 삭제되면 컬렉션이 자동으로 자리를 옮겨줌

  • 특징)
    1. Generics 기법으로 만들어져 있음
    2. 컬렉션의 요소는 객체들만 가능함 (primitive data type은 불가능함)

✏️컬렉션 프레임워크 Collection Framework

  • 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다.

  • 데이터를 저장하는 data structure와 데이터를 처리하는 algorithm을 구조화하여 클래스로 구현해 놓은 것이다.

      * 프로그램 = 자료구조(스택, 큐, 리스트, 배열, 맵, 테이블, 셋 등) + 알고리즘  
    
      * Interface(메소드 정의, 오버라이딩)를 사용하여 implementation(구현) 됨
    

3. 제네릭 Generics

  • 모든 종류의 타입을 다룰 수 있도록, class나 method를 generic type을 이용하여 선언하는 기법이다.
  • 클래스 코드를 찍어내듯이 생산할 수 있도록 일반화시키는 도구이다.

  • 특징)
    1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다.
    2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다.
    3. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다.

✏️Iterator Interface

  • 자바의 컬렉션 프레임워크는 컬렉션의 저장된 요소를 읽어오는 방법으로 iterator 인터페이스로 표준화 하고 있다.

  • 벡터, 배열리스트, 링크드리스트, 셋과 가티 요소가 순서대로 저장된 컬렉션에서 요소를 순차 검색할 때 java.util 패키지의 iterator 인터페이스를 사용하면 편리하다.

    • Iterator(반복자) 인터페이스 메소드
      1. boolean hasNext() : 이터레이션이 다음 방문할 요소를 가지고 있으면 true, 그렇지 않으면 false 리턴
      2. E next() : 이터레이션의 다음 요소 리턴
      3. void remove() : 마지막으로 리턴된 요소를 현재 컬렉션에서 제거

✏️Collection Interface

  • 데이터의 집합을 표현하는 인터페이스로 최상위 인터페이스이다.

    • 주요 메소드 fundamental methods
      1. int size() : 요소의 개수 리턴

      2. boolean isEmpty() : 컬렉션 비어있으면 true를 리턴

      3. boolean contains(Object element) : 요소를 포함하고 있으면 true 리턴

      4. boolean add(Object element) : 요소를 추가하고 성공적으로 추가한 경우 true 리턴

      5. boolean remove(Object element) : 요소를 삭제하고 성공적으로 삭제한 경우 true를 리턴

      6. Iterator iterator() : 컬렉션 요소의 반복자를 리턴