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

@JoisFe
Comment options

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