Maison > Questions et réponses > le corps du texte
PHP中文网2017-04-18 10:48:23
Sb est essentiellement un objet StringBuffer. Directement, sb+"" appelle sb.toString() pour le raccorder à "". De plus, StringBuffer est thread-safe. Pourquoi utiliser StringBuilder ou StringBuffer ? La raison en est que la classe String dans Jdk est de type final, mais pourquoi la version finale modifiée peut-elle exister sous la forme de String str = s + "" ;? Parce que dans jvm, chaque fois que + est exécuté, un objet String temporaire sera créé, puis le String str = a + b; est en fait String str = new String(a) + new String(b); De cette manière, s'il y a trop de chaînes à épisser, de nombreux objets String seront créés. Par conséquent, la surcharge de gc augmentera. Par conséquent, ces opérations fréquentes n'utilisent pas directement l'épissage de chaînes, mais utilisent StringBuilder ou StringBuffer replace.