Skip to content

질문 답변 정리

Bleum edited this page Aug 3, 2021 · 3 revisions

함수형 인터페이스는 무엇인가요?

정확히 하나의 추상메서드를 지닌 인터페이스를 의미한다.

메서드 시그니처란?

메서드의 정의에서 메서드 이름과 메서드 매개변수 리스트를 의미한다.

실행 아라운드 패턴이란?

I/O 자원처리를 예로 들면 I/O 데이터를 받아들이기 위한 설정과 I/O 연결 해제 정리처럼 설정과 정리, 두 가지 과정이 둘러싸는 형태를 실행 어라운드 패턴이라고 한다.

자바 람다에서 final이거나 final처럼 쓰인 지역 변수만 접근할 수 있는 이유

Supplier<Integer> increment(int start) { 
  return () -> start++; 
}

위에서 increment를 호출하게 되면, start라는 지역변수가 스택에 생기지만, 람다 표현식을 리턴하면서 스택 영역에서 start가 사라진다. 이러한 경우를 위해, 람다에선 람다 캡처링이라는 기법을 사용해서, 지역변수의 복사본을 참조하도록 한다.

복사본을 참조하기 때문에 지역변수의 쓰임이 effectively final처럼 사용해야, 동기화 관련 문제가 생기지 않는다.

용어 정리

  • 지역 변수 : 메서드 내에서 쓰이는 변수

  • 인스턴스 변수 : 인스턴스화된 객체의 변수

  • 스태틱 변수 : static으로 정의된 변수