Skip to content

아이템 24. 멤버 클래스는 되도록 static으로 만들라 #48

Answered by JoisFe
Irisation23 asked this question in 3. 과제
Discussion options

You must be logged in to vote

#47 comment에 남겨놓았듯 단순히 멤버클래스 하나 만드는데도 메모리 낭비를 하지 않는지, 숨은 외부 참조를 가져 가비지 컬렉터가 활동하지 못하게 하는지 고민해야할 것이 많군요..

아 그리고 익명 클래스 부분 또한 유익했습니다.
자바 8 버전 이후 추상 메서드 1개 있는 인터페이스 즉 함수형 인터페이스를 구현하기 위해 람다를 이용하여 코드를 현저히 줄일 수 있다는 점이 좋았습니다.

  1. 추상 메서드가 하나 있는 인터페이스를 상황에 맞게 매번 구현하기 위해 클래스를 만드는 점이 매우 불편 (특히 특정 한 부분에서만 해당 클래스 객체가 사용된다면 ? --> 너무 비효율적)
  2. 1 상황을 해결하기 위해 익명 클래스 개념이 나옴 하지만 이 또한 굳이 객체 생성 선언문, 메서드 명 등등 비효율적인 상황이 존재 (유일한 추상메서드 하나를 구현하기에 굳이 메서드 명 등을 입력할 이유가 없음)
  3. 2 상황 마저 해결하기 위해 자바 8에서 람다가 등장

람다식은 메서드를 하나의 식으로 표현하는 선언적 프로그래밍 방법

  • 저는 예전에 오해를 했습니다 람다는 메서드 자체인 줄
  • 람다는 메서드 자체가 아니라 실행문을 가진 객체 !!

Replies: 1 comment 2 replies

Comment options

You must be logged in to vote
2 replies
@Irisation23
Comment options

Irisation23 Jan 9, 2023
Maintainer Author

@JoisFe
Comment options

Answer selected by Irisation23
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
4장 클래스와 인터페이스 이펙티브 자바 4장 (클래스와 인터페이스)
2 participants