본문 바로가기
프로그래밍언어/패턴, 알고리즘, 프로토콜

String.valueOf()

by plog 2010. 6. 23.
String.valueOf() 매소드는 다른 타입의 데이터를 String타입으로 변환하는 것이다.
String.valueOf() 매소드를 사용해서 데이터 변환시 실효성은 어느정도 일까?

1. 아래 두가지 중 어느것이 속도가 빠를가????
1번:  varTest = ""+3;
2번:  varTest = String.valueOf(3);

일단 결과는 같게 나온다.
테스트 해보신분들이 많이 계시겠지만....거의 .. 아니 판단하기 힘들정도로 차이가  없다
회사마다 코딩 표준안이 있겠지만, 대부분 2번을 추천한다.
추상적인 이유 일 수도 있겠지만 1번은 빈 String에 다른 타입의 데이터를 + 로 연결시 효율성이 떨어진다.
빈문자열에 String을 +로 연산시 컴파일러에서 데이터 타입 판단 작업이 발생하는것 같다.소스를 까보지는 않았지만 ㅡ_-

2. 그럼  아래의 경우는?
1번:  varTest = "0"+3;
2번:  varTest = "0"+String.valueOf(3);

이 경우는 "0"  자체가  빈 String이 아니므로 이후에 + 연산자로 붙는 데이터는 String으로 인식한다.
불필요하게 String.valueOf()메소들 사용 할 필요 없다고 한다.
미비한 차이가 발생하도록 테스트 결과 1번이 아주 약간 성능이 좋았다.

코딩 가이드라인을 결정할때 윗 2가지 경우 
가독성과 컴파일러의 효율성을 고려해서 번거롭더라도 상황에 맞게 정하는것이 좋을것 같다.

* code inspection tool(PMD)에서 기본적으로 제공하는 ruleset은 아래와 같이 가이드라인을 제시한다.
1. 아래 두가지 중 어느것이 속도가 빠를가????
1번:  varTest = ""+3;                              (X)
2번:  varTest = String.valueOf(3);  (O)

2. 그럼  아래의 경우는?
1번:  varTest = "0"+3;              (O)
2번:  varTest = "0"+String.valueOf(3); (X)

댓글