Inefficient use StringBuffer or StringBuilder[Optimization|clean-up] {Package: java. * without Swing}

Otávio Gonçalves de Santana otaviojava at java.net
Fri Jun 7 13:25:49 UTC 2013


The string addition in the parameter will create another string buffer,
append all the components, then convert that to a string so the you can be
appended to your string buffer.

So I replace this:

sb.append("    xxx:   [" + getXXX() + "]\n");

for this:

sb.append("    xxx:   [").append(getXXX()).append("]\n");

The classes are:

javax.imageio.plugins.jpeg.JPEGQTable
javax.management.openmbean.ArrayType
javax.naming.BinaryRefAddr
javax.naming.directory.BasicAttribute
javax.naming.NameImpl
javax.sound.sampled.AudioFileFormat


The diff bellow:


diff --git a/src/share/classes/javax/management/openmbean/ArrayType.java
b/src/share/classes/javax/management/openmbean/ArrayType.java
--- a/src/share/classes/javax/management/openmbean/ArrayType.java
+++ b/src/share/classes/javax/management/openmbean/ArrayType.java
@@ -459,7 +459,7 @@
             isPrimitiveArray = at.isPrimitiveArray();
         }
         StringBuilder result =
-            new StringBuilder(dimension + "-dimension array of ");
+            new StringBuilder(dimension).append("-dimension array of ");
         final String elementClassName = elementType.getClassName();
         if (isPrimitiveArray) {
             // Convert from wrapper type to primitive type




diff --git a/src/share/classes/javax/sound/sampled/AudioFileFormat.java
b/src/share/classes/javax/sound/sampled/AudioFileFormat.java
--- a/src/share/classes/javax/sound/sampled/AudioFileFormat.java
+++ b/src/share/classes/javax/sound/sampled/AudioFileFormat.java
@@ -288,19 +288,20 @@

         //$$fb2002-11-01: fix for 4672864: AudioFileFormat.toString()
throws unexpected NullPointerException
         if (type != null) {
-            buf.append(type.toString() + " (." + type.getExtension() + ")
file");
+            buf.append(type.toString()).append("
(.").append(type.getExtension()).append(") file");
+
         } else {
             buf.append("unknown file format");
         }

         if (byteLength != AudioSystem.NOT_SPECIFIED) {
-            buf.append(", byte length: " + byteLength);
+            buf.append(", byte length: ").append(byteLength);
         }

-        buf.append(", data format: " + format);
+        buf.append(", data format: ").append(format);

         if (frameLength != AudioSystem.NOT_SPECIFIED) {
-            buf.append(", frame length: " + frameLength);
+            buf.append(", frame length: ").append(frameLength);
         }

         return new String(buf);




diff --git a/src/share/classes/javax/naming/directory/BasicAttribute.java
b/src/share/classes/javax/naming/directory/BasicAttribute.java
--- a/src/share/classes/javax/naming/directory/BasicAttribute.java
+++ b/src/share/classes/javax/naming/directory/BasicAttribute.java
@@ -211,7 +211,7 @@
       * @return The non-null string representation of this attribute.
       */
     public String toString() {
-        StringBuffer answer = new StringBuffer(attrID + ": ");
+        StringBuffer answer = new StringBuffer(attrID).append(": ");
         if (values.size() == 0) {
             answer.append("No values");
         } else {




diff --git a/src/share/classes/javax/naming/BinaryRefAddr.java
b/src/share/classes/javax/naming/BinaryRefAddr.java
--- a/src/share/classes/javax/naming/BinaryRefAddr.java
+++ b/src/share/classes/javax/naming/BinaryRefAddr.java
@@ -169,7 +169,7 @@

         str.append("AddressContents: ");
         for (int i = 0; i<buf.length && i < 32; i++) {
-            str.append(Integer.toHexString(buf[i]) +" ");
+            str.append(Integer.toHexString(buf[i])).append(" ");
         }
         if (buf.length >= 32)
             str.append(" ...\n");




diff --git a/src/share/classes/javax/imageio/plugins/jpeg/JPEGQTable.java
b/src/share/classes/javax/imageio/plugins/jpeg/JPEGQTable.java
--- a/src/share/classes/javax/imageio/plugins/jpeg/JPEGQTable.java
+++ b/src/share/classes/javax/imageio/plugins/jpeg/JPEGQTable.java
@@ -197,7 +197,7 @@
      */
     public String toString() {
         String ls = System.getProperty("line.separator", "\n");
-        StringBuilder sb = new StringBuilder("JPEGQTable:"+ls);
+        StringBuilder sb = new StringBuilder("JPEGQTable:").append(ls);
         for (int i=0; i < qTable.length; i++) {
             if (i % 8 == 0) {
                 sb.append('\t');




diff --git a/src/share/classes/javax/naming/NameImpl.java
b/src/share/classes/javax/naming/NameImpl.java
--- a/src/share/classes/javax/naming/NameImpl.java
+++ b/src/share/classes/javax/naming/NameImpl.java
@@ -170,7 +170,7 @@
                 endQuote = one ? syntaxEndQuote1 : syntaxEndQuote2;

                 i += syntaxTypevalSeparator.length();
-                answer.append(syntaxTypevalSeparator+beginQuote); // add
back
+                answer.append(syntaxTypevalSeparator).append(beginQuote);
// add back

                 // consume string until matching quote
                 for (i += beginQuote.length();








-- 
Atenciosamente.

Otávio Gonçalves de Santana

blog:     http://otaviosantana.blogspot.com.br/
twitter: http://twitter.com/otaviojava
site:     http://www.otaviojava.com.br
(11)     98255-3513



More information about the core-libs-dev mailing list