java string
microbenchmarking
'indexOf()' expression is replaceable with 'contains()'
Reports any String.indexOf() expressions which can be replaced with a call to the String.contains() method available in Java 5 and newer.
This inspection only reports if the project or module is configured to use a language level of 5.0 or higher.
- java.lang.String을 살펴보면, contains()은 내부적으로 String.indexOf() 을 호출함.
public boolean contains(CharSequence s) {
return indexOf(s.toString()) > -1;
}
- stackoverflow - Which String method: “contains” or “indexOf > -1”? 을 참고하면,
- 추가 method 호출이 성능에 영향을 끼치는지에 대한 논의를 하고 있음. 가장 vote를 많이 받은 답변(18/03/06 기준)은 성능에 유의미한 영향을 끼치지 않는다는 입장임.
- 좀 더 가독성이 좋은(readable)한 contains로 작성하는게 낫지 않을까?
- 위 stackoverflow 답변에서 성능측정 부분이 궁금해서 더 찾아봄.
benchmarking
microbenchmarking
- 찾다보니, 추가 개념
- 정적 분석 tool인 sonarQube는 세팅해두고 가끔 사용하기는 하는데 이것도 한 번 정리해보고 싶구나.