20.12.09

민주·2021년 1월 17일
  1. String(문자열)이 char(캐릭터)의 배열이기 때문에 사용 가능한 기능들


  2. StringBuffer, StringBuilder

    - 문자열 추가시 객체를 계속 생성한다.
    - 각각의 객체가 생성 되기 때문에 메모리를 많이 사용된다.

    - StringBuffer나 StringBuilder는 새로운 객체를 생성하지않고 객체의 크기가 늘어난다.
    - 각각의 객체를 새로 생성하는거랑 크기 차이가 비슷하다(메모리 비슷하게 사용)
    - 하지만 처리하고 싶을때 한번에 처리할 수 있는 장점이 있다
    - StringBuffer : 내가 사용할 때 남들이 사용하지 못하게 하는 것
    - StringBuilder : 남들도 같이 사용하게 하는 것

  3. Generic 정의와 사용 이유
    - 변수 선언 시 특정 타입을 지정하는 것처럼 클래스 선언 또는 객체화시 제너릭을 통해 특정 타입을 지정할 수 있다.
    - 상황에 따라서 다른 데이터 타입을 넣을 수 있는 장점이 있다.
    - 데이터를 넣을때 지정한 타입말고 다른거는 못들어오게 할 수 있다.
    - 캐스팅을 하지않고 바로 열어 볼 수 있다.

    - class box , 제너릭을 사용안한 경우

    - 7 : box에 타입을 지정해주지 않았기 때문에 어떤 형태의 값이 들어있는지 모른다.
    - 12 : 그래서 casting을 통해 확인을 해야하는 번거로움이 있다

    - 3 : 는 어떠한 타입을 받겠다는 의미로 제너릭을 사용하는 방법이다.
    - 5 : 클래스에서 데이터를 주고 받을 때는 private으로 하는 규약이 있다.

    - 8 : box의 데이터 타입을 명시해 주었다.
    - 12 : 제너릭을 사용하지 않았을 때는 캐스팅을 해야했지만 바로 열어 볼 수 있다
    - 16 : 다른 타입으로 바꾸고 싶다면 객체화를 다시하면 된다.

  4. Generic 복수개 이용 방법

    - 3 : 두개의 타입 파라미터를 지정해주면 된다.
    - 아래에 getter, setter있음

    - 7 : 타입을 지정한 만큼 넣어주면 된다.

  5. class를 type 파라미어로 사용하기


    - 왠지 데이터를 넣고 빼는 과정이 단계가 더 많은거 같지만 Info라는 클래스 타입을 만들지 않으면 Employee는
    변수를 하나하나 모두관리해야 한다.

    - Info를 사용안하면 이런식으로 타입을 지정해 객체화를 해줘야 해서 순서가 바뀌거나 빠트리는 실수가 생길 수 있다.

    - 그림과 같이 왼쪽은 하나하나 관리해야하지만 Info라는 클래스를 만들어 관리에 용이하게 만들어 준 것이다.

  6. Generic method
    - 매개타입과 반환 타입의 파라미터를 갖는 method이다.
    - 매개타입과 반환 타입을 상황에 따라 유연하게 변경할 수 있는 장점이 있다.

    - 위와 같이 method의 매개 타입과 반환 타입을 T로 지정해 줄 수 있다.

    - 이렇게 메인클래스에서 매개변수타입과 반환타입을 바꿔가며 활용가능하다는 것 까지만 알면 된다.

  7. Generic 상속

    • Generic은 상속이 가능하며 자식은 부모의 type parameter를 추가 할 수 있다.
  8. Collection Framework

    - 컬렉션 프레임워크는 컬렉션 인터페이스를 최상위로 하는 자료구조 인터페이스이다
    - 초기 선언시 크기를 지정하지않아 유연한 사용이 가능하다는것이 가장 큰 장점이다.
    - 각 인터페이스를 구현 받은 클래스들의 사용법은 비슷하다.( 필수 method를 강제로 오버라이드하기 때문)

profile
개발이좋아요

0개의 댓글