stringbuilder - java StringBuilding 定义
PHP中文网
PHP中文网 2017-04-18 10:18:25
0
6
692

这2种定义方式 有不同吗??
第一种会慢吗?

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(6)
伊谢尔伦

답변: 그만큼 빠릅니다

문자열 초기화 작업:

으아아아

이렇게 하면 컴파일러는 기본적으로 동일합니다. 그러면 느리지 않을 거예요

또 다른 예:

으아아아

이렇게 제작된 s2는 메모리를 3번 요청하기 때문에 속도가 매우 느립니다.

채택하시고 만족하시면 포인트도 주시길 바랍니다. . 저는 새로운 회원이고 여러분 모두에게 봉사할 수 있기를 바랍니다! ! ! (첫 번째 답변에는 -1점을 주고 무작위로 몇 가지 답변을 드리고 싶습니다.)

阿神

첫 번째 유형은 단지 느린 문제가 아니라 똥처럼 보이는 코드 조각입니다.

으아아아
으아아아

위와 같이 사용한다면 "a" + "b" + "c"의 기능을 전혀 사용하지 않으므로 StringBuilder을 직접 사용하는 것이 좋습니다. JDK의 컴파일 최적화를 하면 최종 코드는 다음과 같습니다.

으아아아

두 번째는 전혀 이해가 안 돼요. StringBuilder을 사용하는 의미는 무엇인가요? 그냥 문자열 자체가 아닌가요?

迷茫

javap -c보세요. 컴파일러는 +로 연결한 문자열 상수를 함께 연결해야 하며 두 가지 작성 방법은 동일하게 실행되어야 합니다.

小葫芦

상수 직접 사용 가능 +
변수 사용 가능 +
성능에 신경쓰신다면 http://calvin1978.blogcn.com/...

PHPzhong

객체 간에 접합 문자 '+'를 사용하지 않는 한 기본적으로 문자열 간에 접합 문자 '+'를 사용하거나 사용하지 않는 것에는 차이가 없으며 일단 문자열 객체가 생성되면 생성되도록 수정됩니다. 다른 개체를 사용하면 모든 문자열 개체를 연결하는 속도가 매우 느려집니다.

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 메서드는 실제로 동일한 메서드이고 효율성도 동일합니다. 누구도 속일 수 없습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!