객체를 생성하는 이 두 가지 방법은 실제로 더 빠른 것과 느린 것을 비교하기 위해 다음 두 가지 방법으로 변환할 수 있습니다.
으아아아
물론 이 두 가지 방법은 JVM에서 동일하게 빠릅니다. "T" + "e" + "s" + "t"는 실제로 "Test"로 처리됩니다. 이제 다음 문자열 접합 방법을 살펴보겠습니다.
으아아아
위 방법은 문자열을 연결하는 가장 효율적인 방법이며 매우 권장되지 않습니다. 왜냐하면 이와 같이 문자열을 연결하면 JVM이 실제로 새 StringBuilder를 생성한 다음 추가 메서드를 호출한 다음 toString을 수행하기 때문입니다. 단순히 개처럼 느립니다. (개: 또 총에 누워있네요...) 정리하자면, 피험자가 작성한 두 가지 새로운 StringBuilder 메서드는 실제로 동일한 메서드이고 효율성도 동일합니다. 누구도 속일 수 없습니다.
답변: 그만큼 빠릅니다
채택하시고 만족하시면 포인트도 주시길 바랍니다. . 저는 새로운 회원이고 여러분 모두에게 봉사할 수 있기를 바랍니다! ! ! (첫 번째 답변에는 -1점을 주고 무작위로 몇 가지 답변을 드리고 싶습니다.)
첫 번째 유형은 단지 느린 문제가 아니라 똥처럼 보이는 코드 조각입니다.
으아아아으아아아
위와 같이 사용한다면
으아아아"a" + "b" + "c"
의 기능을 전혀 사용하지 않으므로StringBuilder
을 직접 사용하는 것이 좋습니다.JDK
의 컴파일 최적화를 하면 최종 코드는 다음과 같습니다.두 번째는 전혀 이해가 안 돼요.
StringBuilder
을 사용하는 의미는 무엇인가요? 그냥 문자열 자체가 아닌가요?javap -c
보세요. 컴파일러는+
로 연결한 문자열 상수를 함께 연결해야 하며 두 가지 작성 방법은 동일하게 실행되어야 합니다.상수 직접 사용 가능 +
변수 사용 가능 +
성능에 신경쓰신다면 http://calvin1978.blogcn.com/...
객체 간에 접합 문자 '+'를 사용하지 않는 한 기본적으로 문자열 간에 접합 문자 '+'를 사용하거나 사용하지 않는 것에는 차이가 없으며 일단 문자열 객체가 생성되면 생성되도록 수정됩니다. 다른 개체를 사용하면 모든 문자열 개체를 연결하는 속도가 매우 느려집니다.
public static void main(String[] args) {
으아아아}
으아아아private static void fun1(int 길이){
}
으아아아private static void fun2(int 길이){
}
으아아아private static void fun3(int 길이){
}
으아아아private static void fun4(int 길이){
}
객체를 생성하는 이 두 가지 방법은 실제로 더 빠른 것과 느린 것을 비교하기 위해 다음 두 가지 방법으로 변환할 수 있습니다.
으아아아물론 이 두 가지 방법은 JVM에서 동일하게 빠릅니다. "T" + "e" + "s" + "t"는 실제로 "Test"로 처리됩니다.
으아아아이제 다음 문자열 접합 방법을 살펴보겠습니다.
위 방법은 문자열을 연결하는 가장 효율적인 방법이며 매우 권장되지 않습니다. 왜냐하면 이와 같이 문자열을 연결하면 JVM이 실제로 새 StringBuilder를 생성한 다음 추가 메서드를 호출한 다음 toString을 수행하기 때문입니다. 단순히 개처럼 느립니다. (개: 또 총에 누워있네요...)
정리하자면, 피험자가 작성한 두 가지 새로운 StringBuilder 메서드는 실제로 동일한 메서드이고 효율성도 동일합니다. 누구도 속일 수 없습니다.