


Une introduction détaillée à StringBuilder n'est plus nécessaire pour épisser des chaînes dans Java 8
Parmi les développeurs Java, la consommation élevée de ressources de l'épissage de chaînes est souvent un sujet brûlant
Discutons en profondeur des raisons pour lesquelles il occupe des ressources élevées.
En Java, un StringObject est immuable, ce qui signifie qu'une fois créé, vous ne pouvez pas le modifier. Ainsi, lorsque nous concaténons des chaînes, une nouvelle chaîne est créée et l'ancienne est marquée par le ramasse-miettes.
Si nous traitons des millions de chaînes, alors nous générerons des millions de chaînes supplémentaires qui seront traitées par le garbage collector.
La couche inférieure de la machine virtuelle effectue de nombreuses opérations lors de l'épissage des chaînes. L'opérateur point le plus direct pour concaténer des chaînes est l'opération String#concat(String).
public String concat(String str) { int otherLen = str.length(); if (otherLen == 0) { return this; } int len = value.length; char buf[] = Arrays.copyOf(value, len + otherLen); str.getChars(buf, len); return new String(buf, true); }
public static char[] copyOf(char[] original, int newLength) { char[] copy = new char[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; }
void getChars(char dst[], int dstBegin) { System.arraycopy(value, 0, dst, dstBegin, value.length); }
Vous pouvez voir qu'un tableau de caractères est créé, et la longueur est la somme des caractères existants et de la longueur des caractères épissés. Leurs valeurs sont ensuite copiées dans un nouveau tableau de caractères. Enfin, créez un objet String à partir de ce tableau de caractères et renvoyez-le.
Ces opérations sont donc nombreuses. Si vous le calculez, vous constaterez que la complexité est O(n^2).
Pour résoudre ce problème, nous utilisons la classe StringBuilder. C'est comme une classe String mutable. La méthode d’épissage nous aide à éviter les duplications inutiles. Il a une complexité de O(n), ce qui est bien meilleur que O(n^2).
Cependant, Java 8 utilise StringBuilder pour concaténer les chaînes par défaut.
La documentation pour Java 8 indique :
Afin d'améliorer les performances de concaténation de chaînes, le compilateur Java peut utiliser la classe StringBuffer ou une technologie similaire. Réduisez la création d’objets String intermédiaires lorsque la valeur expression .
Le compilateur Java gère cette situation :
public class StringConcatenateDemo { public static void main(String[] args) { String str = "Hello "; str += "world"; } }
Le code ci-dessus sera compilé dans le bytecode suivant :
public class StringConcatenateDemo { public StringConcatenateDemo(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: ldc #2 // String Hello 2: astore_1 3: new #3 // class java/lang/StringBuilder 6: dup 7: invokespecial #4 // Method java/lang/StringBuilder."<init>":()V 10: aload_1 11: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 14: ldc #6 // String world 16: invokevirtual #5 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 19: invokevirtual #7 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 22: astore_1 23: return }
Vous pouvez Comme vu dans ces bytecodes, StringBuilder est utilisé. Nous n'avons donc plus besoin d'utiliser la classe StringBuilder dans Java 8.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Java8 calcule la date il y a un an ou un an plus tard à l'aide de la méthode minus() pour calculer la date il y a un an packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo09{publicstaticvoidmain(String[ ]args ){LocalDatetoday=LocalDate.now();LocalDatepreviousYear=today.minus(1,ChronoUni

La méthode append() de la classe StringBuilder accepte une valeur String et l'ajoute à l'objet actuel. Convertir la valeur de chaîne en objet StringBuilder - Obtenir la valeur de chaîne. Ajoutez à l’aide de la méthode append() pour obtenir la chaîne dans StringBuilder. Exemple Dans le programme Java suivant, nous convertissons un tableau de chaînes en un seul objet StringBuilder. Démonstration en temps réel publicclassStringToStringBuilder{ publicstaticvoidmain(Stringargs[]){&a

Méthode d'épissage de chaînes : 1. Utilisez le signe « + » pour épisser, la syntaxe est « str = str1 + str2 » ; 2. Utilisez la fonction sprintf() du package fmt pour épisser, la syntaxe est « str = fmt. Sprintf("%s%d% s", s1, i, s2)"; 3. Utilisez la fonction join pour épisser; 4. Utilisez la fonction WriteString() du package tampon pour épisser; 5. Utilisez le générateur du package tampon () fonction à épisser.

Utilisez la méthode delete() de la classe StringBuilder en Java pour supprimer une partie du contenu d'une chaîne. La classe String est une classe de traitement de chaînes couramment utilisée en Java. Elle possède de nombreuses méthodes couramment utilisées pour les opérations sur les chaînes. Cependant, dans certains cas, nous devons modifier fréquemment les chaînes, et l'immuabilité de la classe String entraînera la création fréquente de nouveaux objets chaîne, affectant ainsi les performances. Pour résoudre ce problème, Java fournit la classe StringBuilder, qui

Les méthodes pour effacer stringbuilder sont : 1. Utilisez la méthode setLength(0) pour effacer l'objet StringBuilder ; 2. Utilisez la méthode delete(0, length) pour effacer l'objet StringBuilder ; ") pour effacer l'objet StringBuilder ; 4., utilisez new StringBuilder() pour recréer un nouvel objet StringBuilder.

Utilisez la fonction StringBuilder.replace() de Java pour remplacer une plage de caractères spécifiée. En Java, la classe StringBuilder fournit la méthode replace(), qui peut être utilisée pour remplacer une plage de caractères spécifiée dans une chaîne. La syntaxe de cette méthode est la suivante : publicStringBuilderreplace(intstart,intend,Stringstr) La méthode ci-dessus est utilisée pour remplacer l'étoile d'index de

Interprétation de la documentation Java : Introduction détaillée à la méthode substring() de la classe StringBuilder Introduction : En programmation Java, le traitement des chaînes est l'une des opérations les plus courantes. Java fournit une série de classes et de méthodes pour le traitement des chaînes, parmi lesquelles la classe StringBuilder est un choix couramment utilisé pour les opérations fréquentes sur les chaînes. Dans la classe StringBuilder, la méthode substring() est une méthode très utile pour intercepter les sous-chaînes de chaînes. Cet article sera

Comment Java utilise-t-il la fonction substring() de la classe StringBuilder pour intercepter une sous-chaîne d'une chaîne ? En Java, nous avons souvent besoin de traiter des opérations sur les chaînes. La classe StringBuilder de Java fournit une série de méthodes pour nous faciliter l'exploitation des chaînes. Parmi elles, la fonction substring() peut être utilisée pour intercepter des sous-chaînes de chaînes. La fonction substring() a deux formes surchargées, à savoir substring(intstar
