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

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


Inefficient use StringBuffer or StringBuilder[Optimization|clean-up]

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:


 -- sun
sun.awt.datatransfer.SunClipboard
sun.font.Decoration
sun.font.StandardGlyphVector
sun.management.Agent
sun.net.www.MimeEntry
sun.reflect.annotation.AnnotationType
sun.tools.jstatd.RemoteHostImpl


sun.security.acl.AclEntryImpl
sun.security.krb5.internal.crypto.dk.DkCrypto
sun.security.krb5.KrbException
sun.security.pkcs.SigningCertificateInfo
sun.security.ssl.HandshakeMessage
sun.security.x509.PolicyInformation
sun.security.x509.X509CRLImpl


The diff bellow:


diff --git a/src/share/classes/sun/management/Agent.java
b/src/share/classes/sun/management/Agent.java
--- a/src/share/classes/sun/management/Agent.java
+++ b/src/share/classes/sun/management/Agent.java
@@ -497,7 +497,7 @@
         } else {
             StringBuffer message = new StringBuffer(params[0]);
             for (int i = 1; i < params.length; i++) {
-                message.append(" " + params[i]);
+                message.append(" ").append(params[i]);
             }
             error(key, message.toString());
         }




diff --git a/src/share/classes/sun/reflect/annotation/AnnotationType.java
b/src/share/classes/sun/reflect/annotation/AnnotationType.java
--- a/src/share/classes/sun/reflect/annotation/AnnotationType.java
+++ b/src/share/classes/sun/reflect/annotation/AnnotationType.java
@@ -205,11 +205,11 @@
      * For debugging.
      */
     public String toString() {
-        StringBuffer s = new StringBuffer("Annotation Type:" + "\n");
-        s.append("   Member types: " + memberTypes + "\n");
-        s.append("   Member defaults: " + memberDefaults + "\n");
-        s.append("   Retention policy: " + retention + "\n");
-        s.append("   Inherited: " + inherited);
+        StringBuffer s = new StringBuffer("Annotation Type:").append("\n");
+        s.append("   Member types: " ).append( memberTypes ).append( "\n");
+        s.append("   Member defaults: " ).append( memberDefaults ).append(
"\n");
+        s.append("   Retention policy: " ).append( retention ).append(
"\n");
+        s.append("   Inherited: " ).append( inherited);
         return s.toString();
     }
 }




diff --git a/src/share/classes/sun/font/Decoration.java
b/src/share/classes/sun/font/Decoration.java
--- a/src/share/classes/sun/font/Decoration.java
+++ b/src/share/classes/sun/font/Decoration.java
@@ -430,12 +430,12 @@
             StringBuffer buf = new StringBuffer();
             buf.append(super.toString());
             buf.append("[");
-            if (fgPaint != null) buf.append("fgPaint: " + fgPaint);
-            if (bgPaint != null) buf.append(" bgPaint: " + bgPaint);
+            if (fgPaint != null) buf.append("fgPaint: ").append(fgPaint);
+            if (bgPaint != null) buf.append(" bgPaint: ").append(bgPaint);
             if (swapColors) buf.append(" swapColors: true");
             if (strikethrough) buf.append(" strikethrough: true");
-            if (stdUnderline != null) buf.append(" stdUnderline: " +
stdUnderline);
-            if (imUnderline != null) buf.append(" imUnderline: " +
imUnderline);
+            if (stdUnderline != null) buf.append(" stdUnderline:
").append(stdUnderline);
+            if (imUnderline != null) buf.append(" imUnderline:
").append(imUnderline);
             buf.append("]");
             return buf.toString();
         }




diff --git a/src/share/classes/sun/net/www/MimeEntry.java
b/src/share/classes/sun/net/www/MimeEntry.java
--- a/src/share/classes/sun/net/www/MimeEntry.java
+++ b/src/share/classes/sun/net/www/MimeEntry.java
@@ -297,7 +297,7 @@
             if (needSeparator) {
                 buf.append(separator);
             }
-            buf.append("application=" + command);
+            buf.append("application=").append(command);
             needSeparator = true;
         }

@@ -305,7 +305,7 @@
             if (needSeparator) {
                 buf.append(separator);
             }
-            buf.append("icon=" + getImageFileName());
+            buf.append("icon=").append(getImageFileName());
             needSeparator = true;
         }

@@ -314,7 +314,7 @@
             if (needSeparator) {
                 buf.append(separator);
             }
-            buf.append("file_extensions=" + extensions);
+            buf.append("file_extensions=").append(extensions);
             needSeparator = true;
         }

@@ -323,7 +323,7 @@
             if (needSeparator) {
                 buf.append(separator);
             }
-            buf.append("description=" + description);
+            buf.append("description=" ).append(description);
         }

         return buf.toString();




diff --git a/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java
b/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java
--- a/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java
+++ b/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java
@@ -68,7 +68,7 @@

         sb.append("local://").append(lvmid).append("@localhost");
         if (mode != null) {
-            sb.append("?mode=" + mode);
+            sb.append("?mode=").append(mode);
         }

         String vmidStr = sb.toString();




diff --git a/src/share/classes/sun/font/StandardGlyphVector.java
b/src/share/classes/sun/font/StandardGlyphVector.java
--- a/src/share/classes/sun/font/StandardGlyphVector.java
+++ b/src/share/classes/sun/font/StandardGlyphVector.java
@@ -1894,7 +1894,7 @@
             }
         }
         catch(Exception e) {
-            buf.append(" " + e.getMessage());
+            buf.append(" ").append(e.getMessage());
         }
         buf.append("}");





diff --git a/src/share/classes/sun/awt/datatransfer/SunClipboard.java
b/src/share/classes/sun/awt/datatransfer/SunClipboard.java
--- a/src/share/classes/sun/awt/datatransfer/SunClipboard.java
+++ b/src/share/classes/sun/awt/datatransfer/SunClipboard.java
@@ -87,7 +87,7 @@

     public SunClipboard(String name) {
         super(name);
-        CLIPBOARD_FLAVOR_LISTENER_KEY = new StringBuffer(name +
"_CLIPBOARD_FLAVOR_LISTENER_KEY");
+        CLIPBOARD_FLAVOR_LISTENER_KEY = new
StringBuffer(name).append("_CLIPBOARD_FLAVOR_LISTENER_KEY");
     }

     public synchronized void setContents(Transferable contents,







diff --git a/src/share/classes/sun/security/acl/AclEntryImpl.java
b/src/share/classes/sun/security/acl/AclEntryImpl.java
--- a/src/share/classes/sun/security/acl/AclEntryImpl.java
+++ b/src/share/classes/sun/security/acl/AclEntryImpl.java
@@ -147,7 +147,7 @@
             s.append("Group.");
         else
             s.append("User.");
-        s.append(user + "=");
+        s.append(user).append("=");
         Enumeration<Permission> e = permissions();
         while(e.hasMoreElements()) {
             Permission p = e.nextElement();




diff --git
a/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java
b/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java
--- a/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java
+++ b/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java
@@ -640,7 +640,7 @@

         for (int i = 0; i < digest.length; i++) {
             if ((digest[i] & 0x000000ff) < 0x10) {
-                digestString.append("0" +
+                digestString.append("0").append(
                     Integer.toHexString(digest[i] & 0x000000ff));
             } else {
                 digestString.append(




diff --git a/src/share/classes/sun/security/ssl/HandshakeMessage.java
b/src/share/classes/sun/security/ssl/HandshakeMessage.java
--- a/src/share/classes/sun/security/ssl/HandshakeMessage.java
+++ b/src/share/classes/sun/security/ssl/HandshakeMessage.java
@@ -1478,7 +1478,7 @@
                 boolean opened = false;
                 for (SignatureAndHashAlgorithm signAlg : algorithms) {
                     if (opened) {
-                        buffer.append(", " + signAlg.getAlgorithmName());
+                        buffer.append(",
").append(signAlg.getAlgorithmName());
                     } else {
                         buffer.append(signAlg.getAlgorithmName());
                         opened = true;




diff --git a/src/share/classes/sun/security/krb5/KrbException.java
b/src/share/classes/sun/security/krb5/KrbException.java
--- a/src/share/classes/sun/security/krb5/KrbException.java
+++ b/src/share/classes/sun/security/krb5/KrbException.java
@@ -96,7 +96,7 @@


     public String krbErrorMessage() {
-        StringBuffer strbuf = new StringBuffer("krb_error " + returnCode);
+        StringBuffer strbuf = new StringBuffer("krb_error
").append(returnCode);
         String msg =  getMessage();
         if (msg != null) {
             strbuf.append(" ");




diff --git a/src/share/classes/sun/security/x509/PolicyInformation.java
b/src/share/classes/sun/security/x509/PolicyInformation.java
--- a/src/share/classes/sun/security/x509/PolicyInformation.java
+++ b/src/share/classes/sun/security/x509/PolicyInformation.java
@@ -258,8 +258,8 @@
      * Return a printable representation of the PolicyInformation.
      */
     public String toString() {
-        StringBuilder s = new StringBuilder("  [" +
policyIdentifier.toString());
-        s.append(policyQualifiers + "  ]\n");
+        StringBuilder s = new StringBuilder("  [").append(
policyIdentifier.toString());
+        s.append(policyQualifiers).append("  ]\n");
         return s.toString();
     }





diff --git
a/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java
b/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java
--- a/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java
+++ b/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java
@@ -158,8 +158,8 @@
         }
         buffer.append(hexDumper.encode(certHash));
         if (issuer != null && serialNumber != null) {
-            buffer.append("\n\tIssuer: " + issuer + "\n");
-            buffer.append("\t" + serialNumber);
+            buffer.append("\n\tIssuer: " ).append( issuer ).append( "\n");
+            buffer.append("\t").append( serialNumber);
         }
         buffer.append("\n]");
         return buffer.toString();







-- 
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