DEV ℧ Developer Diary

[EffectiveJava] item68 - 일반적으로 통용되는 명명 규칙을 따르라

자바 플랫폼은 명명 규칙이 잘 정립되어 있으며. 그중 많은 것이 자바 언어 명세에 기술 되어있다.

자바의 명명 규칙은 크게 철자와 문법, 두 범주로 나뉜다.

자바의 명명 규칙

철자

철자 규칙은 패키지, 클래스, 인터페이스, 메서드, 필드, 타입 변수의 이름을 다룬다. 이 규칙들은 특별한 이유가...

[EffectiveJava] item67 - 최적화는 신중히 하라

이 책에서는 최적화에 대한 세가지 격언을 소개한다.

(맹목적인 어리석음을 포함해) 그 어떤 핑계보다 효율성이라는 이름 아래 행해진 컴퓨팅 죄악이 더 많다.(심지어 효율을 높이지도 못하면서)

ㅡ 윌리엄 울프

(전체의 97% 정도인) 자그마한 효율성은 모두 잊자. 섣부른 최적화가 만악의 근원이다.
...

[EffectiveJava] item66 - 네이티브 메서드는 신중히 사용하라

자바 네이티브 인터페이스

자바 네이티브 인터페이스(Java Native Interface, JNI)는 자바 가상머신(JVM)위에서 실행되고 있는 자바코드가 네이티브 응용 프로그램 그리고 C, C++ 그리고 어샘블리 같은 다른 언어로 작성된 라이브러리를 호출하거나 호출되는 것을 가능하게 하는 프로그램 프레임 워크이다.

자바 네이티브 인터페이스의 쓰임새

  • 레지스트리...

[EffectiveJava] item65 - 리플렉션보다는 인터페이스를 사용하라

리플렉션 기능(java.lang.reflect)을 이용하면 프로그램에서 임의의 클래스에 접근할 수 있다.

리플렉션 API(Reflect API)

Class 객체가 주어지면 그 클래스의 생성자(Constructor), 메서드(Method), 필드(Field)에 해당하는 인스턴스를 가져 올 수 있고, 이 인스턴스들로는 그 클래스의 멤버 이름, 필드 타입, 메서드 시그니처등을 가져올 수 있다.

나아가 Constructor, Method, Field 인스턴스를...

[EffectiveJava] item64 - 객체는 인터페이스를 사용해 참조하라

Item51에서 매개변수 타입을 클래스가 아니라 인터페이스를 사용하라고 했다. 이 의미는 “객체는 클래스가 아닌 인터페이스로 참조하라”고 까지 확장할 수 있다.

적합한 인터페이스만 있다면 매개변수뿐 아니라 반환값, 변수, 필드를 전부 인터페이스 타입으로 선언하라. 객체의 실제 클래스를 사용해야 할 상황은 ‘오직’ 생성자로 생성할 때 뿐이다.

인터페이스...