>Java >Java시작하기 >String, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론

String, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론

青灯夜游
青灯夜游앞으로
2019-11-27 17:15:541833검색

Java 개발 인터뷰에서 String, StringBuider, StringBuffer의 차이점에 대해 자주 질문을 받습니다. 많은 사람들이 포괄적이고 깊이 있는 답변을 제공하지 않는데, 이들의 차이점은 무엇인가요?

String, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론

세 가지 모두 문자열에 대한 작업에 사용되는 반면, StringBuilder StringBuffer는 일반적으로 문자열에 대한 작업에 사용됩니다. 접합과 같은 작업. 그러나 실제로 String은 문자열을 연결하는 데에도 사용할 수 있지만 왜 우리는 이를 거의 사용하지 않습니까? 세 가지의 기본 코드부터 시작하겠습니다.

String, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론

String의 기본 코드는 final로 수정된 char 배열입니다. 즉, String 변수를 정의한 후에는 변수의 내용을 변경할 수 없습니다. #🎜🎜 ##### 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜#StringBuilder 및 StringBuffer AbstractStringBuilder, 이 클래스의 문자 배열 final로 수정되지 않았으며 내용이 가변적이라는 것은 무엇을 의미합니까?

예: String, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론

String s1= "a";
String s2 = new String("b") ;
String s3 = s1+s2;

그렇다면 문자열 "ab"를 얻습니다. String 하단에 불변 문자열이 없기 때문에 세 개의 객체가 생성됩니다. 모두 메모리를 점유하고 있으며 이 세 개체는 참조를 잃지 않았으므로 jvm을 가비지 수집할 수 없으므로 메모리 리소스가 크게 낭비됩니다. 이는 개발에서는 권장되지 않지만 StringBuilder 및 StringBuffer에는 이러한 문제가 없습니다. 기본 코드를 통해 확인할 수 있습니다. StringBuilder와 StringBuffer가 문자열을 이어붙일 때 문자열 길이가 데이터를 캡슐화하기 위한 새 배열을 생성하기에 충분한지 확인하는 반면, 원래 개체는 참조를 포기하고 가비지 수집을 기다리므로 따라서 스플라이싱을 할 때 문자열이나 다른 작업을 수행할 때 일반적으로 StringBuilder와 StringBuffer를 사용하는데 둘의 실행 효율성이 더 높은 이유는 무엇입니까?

String, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론

String, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론

기본 소스 코드를 통해 StringBuffer가 문자열을 연결할 때 동기화 잠금을 사용하는 것을 확인할 수 있습니다. . 보안이 향상되고 StringBuilder는 동기화 잠금을 사용하지 않으므로 효율성이 향상됩니다.

이제 세 가지의 차이점을 이해하셔야 합니다! !

이 기사는

javaIntroductionString, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론 칼럼에서 가져온 것입니다. 학습에 오신 것을 환영합니다!

위 내용은 String, StringBuffer 및 StringBuilder의 차이점에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 源码时代에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제