Il existe deux types d'opérations sur les chaînes en Java : la classe String et la classe StringBuffer (classe de traitement de chaînes tamponnée).
Parlons brièvement de la différence entre les deux.
La classe String et la classe StringBuffer fournissent toutes deux des méthodes correspondantes pour implémenter les opérations sur les chaînes, mais elles sont légèrement différentes.
(1) Classe String
Une fois que cette classe génère une chaîne, son objet est immuable. Le contenu et la longueur de la classe String sont fixes. Si le programme a besoin d'obtenir des informations sur les chaînes, il doit appeler diverses méthodes d'opération sur les chaînes fournies par le système. Bien que des opérations puissent être appliquées aux chaînes via diverses méthodes système, cela ne modifie pas l'instance d'objet elle-même, mais génère une nouvelle instance. Le système alloue de la mémoire aux objets de classe String en fonction du nombre réel de caractères contenus dans l'objet.
(2) Classe StringBuffer
J'ai recherché le mot Buffer et cela signifie mise en mémoire tampon. Cette classe doit avoir la fonction de mise en mémoire tampon. Cette classe gère les chaînes mutables. Si vous souhaitez modifier une chaîne de la classe StringBuffer, vous n'avez pas besoin de créer un nouvel objet chaîne, mais d'opérer directement sur la chaîne d'origine. Les différentes méthodes de manipulation de chaînes de cette classe ne sont pas les mêmes que celles fournies par la classe String. Lorsque le système alloue de la mémoire à la classe StringBuffer, en plus de l'espace occupé par le caractère actuel, il fournit également un tampon supplémentaire de 16 caractères. Chaque objet StringBuffer a une certaine capacité de tampon. Lorsque la taille de la chaîne ne dépasse pas la capacité, aucune nouvelle capacité ne sera allouée. Lorsque la taille de la chaîne dépasse la capacité, la capacité sera automatiquement augmentée.
Voici quelques exemples précis
Concaténation de chaînes
La classe String a deux méthodes
La première (" ")
public class str{ public static void main(String[] args){ String str1="加特效!"; String str2="Duang~~"; System.out.println(str1+" "+str2); } }
Deuxième type ("concat")
public class str{ public static void main(String[] args){ String str1="加特效!"; String str2="Duang~~"; System.out.println(str1.concat(str2)); } }
Méthodes de la classe StringBuffer
public class str{ public static void main(String[] args){ //构建一个缓冲字符串的对象sb StringBuffer sb=new StringBuffer("加特效!"); //通过append方法,在这个对象后面添加一个新字符串 sb.append(" Duang~~"); System.out.println(sb); } }
Les résultats finaux sont les suivants : ajoutez des effets spéciaux ! Duang~~
Il n'est pas difficile de voir à partir de l'exemple ci-dessus que lorsque la classe String est étendue, elle doit instancier deux objets. Chaque objet occupera une certaine quantité de mémoire, et la classe StringBuffer ne le fait pas. besoin d'en instancier une autre. Pour une nouvelle classe, il vous suffit d'appeler une méthode étendue.
Un autre point est que la capacité mémoire de la classe StringBuffer est évolutive. Pour donner un exemple spécifique :
public class str{ public static void main(String[] args){ //声明字符串对象sb StringBuffer sb=new StringBuffer(40); System.out.println(sb.capacity()); //输出字符串的容量capacity sb.ensureCapacity(100); //扩充容量 System.out.println(sb.capacity()); //输出字符串的容量capacity } }
La méthode capacité() représente le nombre de chaînes que l'objet chaîne peut contenir en mémoire. Si vous souhaitez augmenter la capacité mémoire, vous pouvez utiliser la méthode EnsureCapacity().
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.
Pour plus d'articles sur la différence entre la classe String et la classe StringBuffer en JAVA, veuillez faire attention au site Web PHP chinois !