PHP中文网2017-04-18 10:48:23
Sb는 본질적으로 StringBuffer 객체입니다. sb+""는 sb.toString()을 호출하여 ""로 연결합니다. 또한 StringBuffer는 스레드로부터 안전합니다. 그 이유는 Jdk의 String 클래스가 final 타입인데 왜 최종 수정 버전이 String str = s + ""; 형태로 존재할 수 있는 걸까요? jvm에서는 +가 실행될 때마다 임시 String 객체가 생성되고 String str = a + b가 실제로 표시됩니다. 그런데 스플라이싱할 문자열이 너무 많으면 많은 String 개체가 생성되므로 gc의 오버헤드가 증가하므로 이러한 빈번한 작업은 문자열 스플라이싱을 직접 사용하지 않고 StringBuilder 또는 StringBuffer를 사용합니다.