iForeRunner
 
   
 
  JAVA  
   
   
   
 
  StringBuffer | StringBuilder | Example | Java  
 
  java.lang.StringBuffer, java.lang.StringBuilder

/**
*
* @author Venugopal Darur
* Practical way to use String Buffer in Java is explained.
* It is always efficient to use StringBuffer when we append
* more than 5 strings.
* For example
* if we add 100 Strings concatenation it will tak more time to execute
* But if we use a Stringbuffer in comparitively very less.
* In interviews you need answer this, instead of saying briefly
* Mutable or Immutable no one understands.
*
* Please say the difference between String and StringBuffer is performance when
* concatenating more strings.
* Using StringBuffer saves us more time and in production environments
* recommend Stringbuffer to String.
*
*/
public class StringBufferDemo {
public static void main( String [] args ){
// Time taken for String concatenation.
String bufferString = "S";
double startTime = System.currentTimeMillis();
bufferString=stringAddition(bufferString);
double endTime = System.currentTimeMillis();
System.out.println( (endTime-startTime)/100);
// Add this String for 100 times using String addition

startTime = System.currentTimeMillis();
bufferString = "StringBuffer";
bufferString=stringBufferAddition(bufferString);
endTime = System.currentTimeMillis();
System.out.println( (endTime-startTime)/100);

bufferString = "StringBuilder";
bufferString=stringBuilderAddition(bufferString);
endTime = System.currentTimeMillis();
System.out.println( (endTime-startTime)/100);
// See the output time there is huge difference
}



/**
* StringConcatenation
* @param bufferString
* @return
*/
public static String stringAddition( String bufferString ){
for( int i =0; i<=25; i++ ){
bufferString = bufferString+""+bufferString;
}
return bufferString;
}

/**
* 1 Construct StringBuffer Example Method
* 2 Convert StringBuffer to String
* @param bufferString
* @return
*/
public static String stringBufferAddition( String bufferString ){
C stringBuffer = new StringBuffer();
for( int i =0; i<=10000; i++ ){
//simpple append method is used
stringBuffer.append(bufferString);
}
//convert StringBuffer to String
bufferString=stringBuffer.toString();
return bufferString;
}

/**
* Difference between StringBuffer and StringBuilder is synchronization
* 1 Construct StringBuilder Example Method
* 2 Convert StringBuilder to String
* @param builderString
* @return
*/
public static String stringBuilderAddition( String builderString ){
StringBuilder stringBuilder = new StringBuilder();
for( int i =0; i<=10000; i++ ){
//simpple append method is used
stringBuilder.append(builderString);
}
//convert StringBuilder to String
builderString=stringBuilder.toString();
return builderString;
}

}

/**
* output of the program in our local machine
*
* 6.57 shows less performance
* 0.0 shows More performance
* 0.16 shows little more performance
*
*/