불변 문자열
문자열 객체는 불변입니다. JVM은 이를 최적화하고 문자열 상수 풀로 메모리 영역을 열었습니다. "리터럴" 형식으로 생성된 문자열 개체는 캐시되고 재사용됩니다.
//"字面量"形式创建的字符串 String str = "abc";
문자열 연산자: "+" 및 StringBuilder
연산자 "+"는 문자열 문자열을 연결할 수 있습니다. 컴파일러에는 최적화 수단이 있습니다. 소스 코드를 컴파일할 때 계산 표현식의 모든 매개변수가 리터럴이며 직접 계산되어 결과가 클래스 파일로 컴파일됩니다.
String str = "abcd"; String str1 = "ab"+"cd";//输出abcd 对象不变 System.out.println(str==str1);//true
계산 표현식의 한쪽이 변수인 경우 컴파일러는 런타임 중에 이를 결합하여 최종적으로 새 객체를 생성하므로 성능이 소모됩니다.
String str = "abcd"; String str1 = "ab"; String str2 = str1+"cd";//输出abcd 对象改变 System.out.println(str==str2);//false
StringBuilder
컴파일러는 또한 컴파일 중에 접합을 위해 StringBuilder의 추가() 메서드를 자동으로 참조하고 마지막으로 toString()을 호출하여 결과를 생성합니다. 그러나 .calss 바이트코드의 각 접합 루프는 StringBuilder 객체를 생성합니다. 문자열 작업이 복잡한 경우 .java 파일을 작성할 때 접합을 위한 StringBuilder 객체를 생성합니다.
String의 일반적인 메서드
위 내용은 문자열_문자열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!