Inefficient use StringBuffer or StringBuilder[Optimization|clean-up] {Package: con.sun. * java.lang*} (original) (raw)

Otávio Gonçalves de Santana otaviojava at java.net
Fri Jun 7 13🔞27 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:

-- com.sun com.sun.tools.hat.internal.model.JavaValueArray com.sun.jmx.snmp.IPAcl.NetMaskImpl com.sun.jndi.ldap.sasl.DefaultCallbackHandler com.sun.media.sound.WaveExtensibleFileReader com.sun.org.apache.xml.internal.security.encryption.XMLCipher com.sun.org.apache.xml.internal.security.utils.RFC2253Parser com.sun.security.sasl.CramMD5Base com.sun.security.sasl.digest.DigestMD5Base com.sun.tools.example.debug.gui.ContextManager com.sun.tools.jdi.VirtualMachineImpl

-- java.lang java.lang.invoke.LambdaForm

The diff bellow:

diff --git a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) {

diff --git a/src/share/classes/com/sun/security/sasl/CramMD5Base.java b/src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java @@ -199,8 +199,7 @@

     for (i = 0; i < digest.length; i++) {
         if ((digest[i] & 0x000000ff) < 0x10) {

diff --git a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java @@ -90,7 +90,7 @@ if (selected == -1) { StringBuffer allChoices = new StringBuffer(); for (int j = 0; j < choices.length; j++) {

property value, '" +

diff --git a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java @@ -391,7 +391,7 @@

     for (int i = 0; i < digest.length; i ++) {
         if ((digest[i] & 0x000000ff) < 0x10) {

diff --git a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value);

16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2;

diff --git a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuffer buff = new StringBuffer(); for(int i =0; i < addrLength; i++) {

diff --git a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java

a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java @@ -98,7 +98,7 @@ l += countQuotes(_DN, j, k);

         if ((k > 0) && (_DN.charAt(k - 1) != '\\') && (l % 2) != 1) {

@@ -131,8 +131,7 @@ l += countQuotes(str, j, k);

      if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) != 1) {

@@ -386,7 +385,7 @@ int k;

   for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) {

@@ -436,7 +435,7 @@ l += countQuotes(str, j, k);

      if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) != 1) {

diff --git a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) {

diff --git a/src/share/classes/com/sun/security/sasl/CramMD5Base.java b/src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java @@ -199,8 +199,7 @@

     for (i = 0; i < digest.length; i++) {
         if ((digest[i] & 0x000000ff) < 0x10) {

diff --git a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java @@ -90,7 +90,7 @@ if (selected == -1) { StringBuffer allChoices = new StringBuffer(); for (int j = 0; j < choices.length; j++) {

property value, '" +

diff --git a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java @@ -391,7 +391,7 @@

     for (int i = 0; i < digest.length; i ++) {
         if ((digest[i] & 0x000000ff) < 0x10) {

diff --git a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value);

16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2;

diff --git a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuffer buff = new StringBuffer(); for(int i =0; i < addrLength; i++) {

diff --git a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java

a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java @@ -98,7 +98,7 @@ l += countQuotes(_DN, j, k);

         if ((k > 0) && (_DN.charAt(k - 1) != '\\') && (l % 2) != 1) {

@@ -131,8 +131,7 @@ l += countQuotes(str, j, k);

      if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) != 1) {

@@ -386,7 +385,7 @@ int k;

   for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) {

@@ -436,7 +435,7 @@ l += countQuotes(str, j, k);

      if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) != 1) {

diff --git a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java --- a/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java +++ b/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java @@ -338,10 +338,10 @@ if (classpath.isEmpty()) { String envcp = System.getProperty("env.class.path"); if ((envcp != null) && (envcp.length() > 0)) {

diff --git a/src/share/classes/com/sun/security/sasl/CramMD5Base.java b/src/share/classes/com/sun/security/sasl/CramMD5Base.java --- a/src/share/classes/com/sun/security/sasl/CramMD5Base.java +++ b/src/share/classes/com/sun/security/sasl/CramMD5Base.java @@ -199,8 +199,7 @@

     for (i = 0; i < digest.length; i++) {
         if ((digest[i] & 0x000000ff) < 0x10) {

a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java +++ b/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java @@ -90,7 +90,7 @@ if (selected == -1) { StringBuffer allChoices = new StringBuffer(); for (int j = 0; j < choices.length; j++) {

property value, '" +

diff --git a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java @@ -391,7 +391,7 @@

     for (int i = 0; i < digest.length; i ++) {
         if ((digest[i] & 0x000000ff) < 0x10) {

diff --git a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java --- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java +++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java @@ -386,37 +386,37 @@ } case 'B': { int val = 0xFF & byteAt(i, value);

16)); i++; break; } case 'S': { short val = shortAt(i, value); i += 2;

diff --git a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java --- a/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java +++ b/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java @@ -65,7 +65,7 @@ "extractSubNet", "BINARY ARRAY :"); StringBuffer buff = new StringBuffer(); for(int i =0; i < addrLength; i++) {

diff --git a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java

a/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java @@ -98,7 +98,7 @@ l += countQuotes(_DN, j, k);

         if ((k > 0) && (_DN.charAt(k - 1) != '\\') && (l % 2) != 1) {

@@ -131,8 +131,7 @@ l += countQuotes(str, j, k);

      if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) != 1) {

@@ -386,7 +385,7 @@ int k;

   for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) {

@@ -436,7 +435,7 @@ l += countQuotes(str, j, k);

      if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) != 1) {

diff --git a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java @@ -881,10 +881,10 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else {

diff --git a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) {

diff --git a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java

a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java @@ -1932,7 +1932,7 @@ StringBuffer sb;

                     sb = new StringBuffer();

encoding="UTF-8"?><"+tagname);

encoding="UTF-8"?><").append(tagname);

                     // Run through each node up to the document node

and find any // xmlns: nodes

diff --git a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java @@ -881,10 +881,10 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else {

diff --git a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) {

diff --git a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java

a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java @@ -1932,7 +1932,7 @@ StringBuffer sb;

                     sb = new StringBuffer();

encoding="UTF-8"?><"+tagname);

encoding="UTF-8"?><").append(tagname);

                     // Run through each node up to the document node

and find any // xmlns: nodes

diff --git a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java --- a/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java +++ b/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java @@ -881,10 +881,10 @@ } else if (tag == JDWP.TypeTag.ARRAY) { sb.append("ArrayType"); } else {

diff --git a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java --- a/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java +++ b/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java @@ -167,9 +167,9 @@ for (int i = 0; i < allchannelnames.length; i++) { if ((channelmask & m) != 0L) { if (i < channelnames.length) {

diff --git a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java

a/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java +++ b/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java @@ -1932,7 +1932,7 @@ StringBuffer sb;

                     sb = new StringBuffer();

encoding="UTF-8"?><"+tagname);

encoding="UTF-8"?><").append(tagname);

                     // Run through each node up to the document node

and find any // xmlns: nodes

-- java_lang

diff --git a/src/share/classes/java/lang/invoke/LambdaForm.java b/src/share/classes/java/lang/invoke/LambdaForm.java --- a/src/share/classes/java/lang/invoke/LambdaForm.java +++ b/src/share/classes/java/lang/invoke/LambdaForm.java @@ -708,7 +708,7 @@ }

 public String toString() {

StringBuilder(debugName).append("=Lambda("); for (int i = 0; i < names.length; i++) { if (i == arity) buf.append(")=>{"); Name n = names[i];

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