Effective Java (1) - 객체 생성과 소멸(파괴)

gentledot·2021년 7월 19일
0

참고자료

  • 도서 : Effective Java(이펙티브 자바) 3판 - 조슈아 블로크 (옮긴이 개앞맵시(이복연) 펴낸이 한기성) / 2018.12 인사이트

개요

  • Java라는 언어로 코드를 작성할 때 품질 좋은 코드(효과적인 코드)를 작성하는 방법에 대해 정리하고자 합니다.
  • 쉽진 않겠지만 Java의 구조 및 용법에 대해 지식으로 정리하고 코드 개선이 필요한 상황에서 활용해보고자 합니다.

Java 언어 명세 (JLS)

자료형

참조타입 (reference type) (= object)

  • 인터페이스
    • annotation
  • 클래스
    • enum
  • 배열

기본타입 (primitive type)

  • 기본타입

Class의 member

  • field
  • method
  • member class
  • member interface

Method Signiture

  • method name
  • input parameters
  • *return value의 type은 포함되지 않는다.

JSL의 유사 정의

  1. 상속(inheritance)과 서브클래싱(subclassing)이 동의어로 사용됨.
  2. 인터페이스 상속을 다음으로 표현하였음.
  • "클래스가 인터페이스를 구현(implement)
  • 또는 "인터페이스가 다른 인터페이스를 확장(extend)
  1. 지시자를 사용하지 않은 접근 수준 (access level)
  • 패키지 접근(package access)

  • 패키지-프라이빗(package-private)

  • 참고: 접근 수준 지시자

    • public
    • protected
    • package-private
    • private

JSL에 정의하지 않은 용어

  • 공개 API(exported API), 즉 API(Application Programming Interface)는 프로그래머가 클래스, 인터페이스 패키지를 통해 접근할 수 있는 모든 클래스, 인터페이스, 생성자, 멤버, 직렬 form을 말한다.
  • 클래스(class), 인터페이스(interface), 생성자(constructor), 멤버(member), 직렬화된 형태 (serialized form)을 총칭해 API 요소(API Element)라 한다.
  • 패키지의 공개 API는 패키지의 모든 public class와 interface의 public 또는 protected member와 constructor로 구성된다.

객체 생성과 파괴

  • 객체를 만들어야 할 때와 객체를 만들지 말아야 할 때를 구분하는 방법
  • 올바른 객체 생성 방법과 불필요한 생성을 피하는 방법
  • 제때 파괴됨(소멸됨)을 보장하고 파괴 전에 수행해야 할 정리 작업 관리 요령을 알아본다고 적혀있다.

생성자, 정적 팩터리 메서드(static factory method) 그리고 빌더 (Builder)

이하 내용은 틈틈히 책을 읽으면서 1차적으로 개념들이 정리가 되면 작성해보고자 합니다. 그 전까지는 작성중 상태로 남겨두겠습니다. 😴

profile
그동안 마신 커피와 개발 지식, 경험을 기록하는 공간

0개의 댓글