Skip to content

Latest commit

 

History

History
42 lines (22 loc) · 1.68 KB

item62.md

File metadata and controls

42 lines (22 loc) · 1.68 KB

62. 다른 타입이 적절하다면 문자열 사용을 피하라


  • 문자열은 열거 타입을 대신하기 적합하지 않다

    • 상수 열거시 문자열보다 열거 타입이 낫다
  • 문자열은 혼합 타입을 대신하기 적합하지 않다

    • 여러 요소가 혼합된 데이터를 하나의 문자열로 표현하는 것은 좋지 않다

      String cocmpoundKey = className + "#" + i.next();

      각 요소를 개별로 접근하려면 문자열을 파싱해야 해서 느리고, 귀찮고, 오류 가능성 커진다.

      적절한 equlas, toString, compareTo 메서드 제공할 수 없고, String이 제공하는 기능에만 의존해야

      차라리 전용 클래스를 새로 만드는게 낫다

  • 문자열은 권한을 표현하기에 적합하지 않다

.

.

  • 문자열은 불변(immutable)하기 때문에 문자열 연산이 빈번하게 일어날 경우 성능 문제를 발생시킬 수 있다.

    → 문자열 연산이 필요한 경우 StringBuilder나 StringBuffer 클래스를 사용하는 것이 좋다.

    이러한 클래스는 내부 버퍼(buffer)를 사용하여 문자열 연산을 수행하므로, 객체 생성이 적고 성능이 좋다.

.

  • 문자열을 enum 상수나 정수형 상수로 대체하여 사용하는 것이 좋다.

    enum 상수는 상수의 이름이 문자열로 정의되어 있으므로 가독성이 높아지고, 오타 등의 오류를 줄일 수 있다.

    정수형 상수는 switch 문에서 사용할 수 있으며, 이 경우 문자열을 사용하는 것보다 훨씬 빠르고 효율적이다.