Java >> Tutoriel Java >  >> Tag >> String

Comparaison de StringBuffer et StringBuilder en Java

StringBuffer et StringBuilder sont deux classes de java, qui sont utilisées pour string. Ceux-ci sont utilisés chaque fois que de nombreuses modifications sont nécessaires pour les chaînes. StringBuffer et StringBuilder les objets peuvent être modifiés encore et encore.

La seule différence entre StringBuffer et String Builder est que les méthodes StringBuilder ne sont pas synchronisées, c'est-à-dire qu'elles ne sont pas thread-safe car deux threads peuvent appeler les méthodes StringBuilder simultanément. D'autre part, String Buffer est thread-safe.

Il est préférable d'utiliser StringBuilder car il est beaucoup plus rapide que String Buffer.

Prenons un exemple pour vérifier lequel est le plus rapide.

public class ExComparison2 {
	public static void main(String arg[])
	{
		long st,et;
		StringBuffer str1=new StringBuffer();// String buffer class object
		st=System.currentTimeMillis(); // recording current time
		for(int i=0;i<1000000;i++)
		{
			//append method of string buffer add the data in string object.		
			str1.append("Testing StringBuffer ");
		}
		et=System.currentTimeMillis();
		System.out.println("String Buffer Takes "+(et-st)+" milliSeconds");
		//(et-st) shows the time taken by the String buffer.
		StringBuilder str2=new StringBuilder();//String Builder class object
		st=System.currentTimeMillis();
		for(int i=0;i<1000000;i++)
		{
			//append method of string buffer add the data in string object.
			str2.append("Testing StringBuffer ");
		}

		et=System.currentTimeMillis();
		System.out.println("String Builder Takes "+(et-st)+" milliSeconds");
		////(et-st) shows the time taken by the String builder.
	}
}

Sortie


Comme vous pouvez le voir StringBuilder prend moins de temps que StringBuffer .


Balise Java