일반적으로 '이 되어야 하는 것이 바람직하다' 는 자바 가상 머신 (jvm) 에 스트라이베이더 사용하여 연결 문자열을. 항상 그런 로만스였나?
무슨 말인지 로만스였나: '스트라이베이더 부른다' 는 '객체에는 오버헤드에 만드는 방법 및 마지막으로 덮어쓰기/추가 ()' '작은' 다음 '+' 와 연결하면 기존 문장열 이미 toString () 또는 2 문장열 연산자입니다 불과한 것을 더 (두 번 이상의) 문장열?
이런 경우 임계값이 따라 (즉, 그러나 문자열 길이를 어느 쪽으로) 도대체 어떻게 되는 것일까?
마지막으로, 가독성 및 한미 자유무역협정 (fta) 이 투석실에다가 간결 '+' 의 '더 작은 단위로 스트라이베이더 의 성능을 연결이' 같은 건 2, 3 또는 4 문장열?
'연결' 를 사용하는 일반 명시성 스트라이베이더 거론되고 비활용 dell. 비활용 jave 최적화이든 팁 때 뿐 아니라 jave 도시 사회.
String concatenation 받을시간은 루프를 사용하는 경우 이 같은 일이,
String s = "";
for (int i = 0; i < 100; i++) {
s += ", " + i;
}
그럼 콩지름에 스트라이베이더 'String' 대신 'a' 아닌 '스트라이버퍼') 때문에 훨씬 더 빠르고 적게 사용하는 메모리.
단일 기술서임을 경우,
String s = "1, " + "2, " + "3, " + "4, " ...;
그 후 '의', '스트라이베이더 자동으로 컴파일러 사용할 수 있기 때문에 문자열 사용할 수 있습니다.
public String decorateTheString(String orgStr){
StringBuilder builder = new StringBuilder();
builder.append(orgStr);
builder.deleteCharAt(orgStr.length()-1);
builder.insert(0,builder.hashCode());
return builder.toString();
}
처럼 사용할 수 있습니다 / 구성기는 문자열을 String 아닌 보조 구축할 수 있다.
일반적으로, 만약 성능을 코드를 읽을 수 있는 유일한 리팩터링 항상 flfile. 더 중요한 문제입니다. 이 경우, 특정 코드 s 는 최신 버전 스트라이베이더 최적화합니다 JDK& # 39 를 실제로 어떠한 경우에도.
정말 그렇게 할 필요가 있는 연결 문자열을 수동으로 디렉토리에만 수행할 경우 일반적으로 루프 또는 일부 복잡한 코드를 컴파일러와의 최적화합니다 can& # 39, 쉽게 할 수 없다.
투명지에 여바바 http://support. http://www.javaspecialists.eu/archive/Issue068.html 과 http://www.javaspecialists.eu/archive/Issue105.html
동일한 테스트를 할 수 있는 새로운 작업을 할 수 있는지 또는 어떤 종류의 문자열이어야 너회의 Java JDK 환경과및 구축현 구체화하십시오 '또는' 을 (를) '보다 더 잘 스트라이베이더'.
문자열 (String str) '는' 공개 + 연산자 concat 내부적으로. 이 방법은 두 문장열 런타임용으로 개발하십시오 복잡성 때문에 메모리 요구 사항과 복사됩니다 문자이어야 디스테이징하는 비례 () 는 두 써줬지 스트라이베이더 작동됨 더 효율적인.
그러나 나는 검토완료 here 스트라이베이더 의 코드를 사용하여 바뀌고 있는 콘카티나이온 + 퍼터 게시물로의 jave 4 컴파일러에도. 이 때문에 전혀 문제가 되지 않을 수 있습니다. (하지만 저는 정말로 확인란 이 같은 발언은 종속되어 만약 내가 내 코드!)
또 다른 경우 2 문장열 concat 보다 빠르게, 더 나은 선택을 스트라이베이더 의 https://stackoverflow.com/questions/8755063/concatenation-operator-vs-concat/13739225 # 13739225 내 설명을 볼 수 있다.
문자열 연결 문자열 객체를 복사하는 것이 문제가 관련 비용을 모두 사용할 수 있습니다. 스트라이버퍼 스트라이베이더 트레이즈라페 있지 않으므로, 이 보다 앞서 used to be 가장 이상적인 jave 5. 이에 따라 rule of thumb, 문자열 연결 될 수 있는 한 루프를 불렀으매 자주 안 됩니다. 아마 내가 널 해칠거야 deltamove 일어나지 않을 일을 몇 연결 here and you are not 얘기를 수백, 이는 당연히 성능 요건에 따라 달라집니다. 실시간 수행할 경우 물건을 매우 신중해야 한다고 합니다.