반응형

규칙51

    규칙 52 - 객체를 참조할 때는 그 인터페이스를 사용하라.

    규칙 40에서 클래스 대신 인터페이스로 자료형을 사용하는 것에 대해 이야기 했었다. 더 나아가 객체를 참조할 때 인터페이스를 사용하는 것이 좋은 이유에 대해 설명하겠다. 예를 들어 Vector 클래스를 예로 들어보자. 참고로 Vector는 List 인터페이스를 구현해서 제작되었다 // List 인터페이스를 참조 List a = new Vector(); // Vector 클래스를 참조 Vector b = new Vector();위의 경우를 보면 하나는 List 인터페이스를 하나는 Vector 클래스를 참조하였다. 여기서 만약 위에 객체를 Vector가 아닌 ArrayList로 바꾸려고 한다면, 인터페이스를 참조한 위에 경우는 바로 변경이 가능하지만 아래의 경우에는 변경이 불가능하다. 즉, 인터페이스를 사용..

    규칙 51 - 문자열 연결 시 성능에 주의하라

    문자열 연결시에 + 를 사용하여 연결하면 편리하고 좋다. 한줄 정도나 몇 개 정도의 객체를 문자열로 변환할 때는 사용해도 무관하다. 하지만 연결하는 것이 많으면 성능에 문제가 발생한다. n개의 문자열에 연결 연산자를 반복 적용해서 연결하는 데 소요되는 시간은 n의 제곱에 비례한다. -> 왜냐하면, 문자열은 변경불가능한 객체이기 때문에 새로 만들기위해서 두 개의 문자열을 붙힐 때 기준에 문자열을 모두 복사한다. 만족스런 성능을 위해서는 stringBuilder나 동기화가 적용된 StringBuffer를 사용하라. 출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙50 인용.

반응형