아이템 66. 네이티브 매서드는 신중히 사용하라.

이펙티브 자바

아이템 66. 네이티브 매서드는 신중히 사용하라.

자바 네이티브 인터페이스(JNI)는 자바 프로그램이 C나 C++ 같은 네이티브 언어로 작성한 메소드를 말한다.

자바 네이티브 인터페이스의 주요 쓰임세

  • 레지스터리 같은 플랫폼 특화 기능을 사용한다.

  • 네이티브 코드로 작성된 기존 라이브러리를 사용한다.

  • 성능 개선을 목적으로 성능에 결정적인 영향을 주는 부분만 네이티브 코드로 작성한다.

성능을 개선을 목적으로 네이티브 메서드를 사용하는 것은 권장하지 않는다.

네이티브 메서드의 단점

  1. 네이티브 메서드가 안전하지 않으므로(아이템 50) 네이티브 메서드를 사용하는 애플리케이션도 메모리 회손 오류로 부터 안전하지 않다.
  2. 네이티브 언어는 자바보다 플랫폼을 많이 타 이식성이 어렵다.
  3. 디버깅도 어렵다.
  4. 주의하지 않으면 속도가 더 느릴수 있다.
  5. 가비지 컬렉터가 메모리를 회수 하지 못하고 심지어 추적할수도 없다.(아이템 8)
  6. 자바와 네이티브 메서드를 넘나들때 비용이 발생한다.
  7. 네이티브 메서드와 자바코드 사이에 접착코드(glue code)를 작성 해야 하는데 귀찮은 작업이다.

참조