[dna-commits] DNA SVN: r594 - in trunk/dna-common/src/main/java/org/jboss/dna/common: util and 1 other directory.

Randall Hauch rhauch at redhat.com
Tue Oct 28 16:16:43 EDT 2008


I don't believe you're right, at least for string literals available  
at compile-time.  Those are all interned into the same bucket.

On Oct 28, 2008, at 2:38 PM, John Verhaeg wrote:

> I believe your comments below are not entirely accurate.  There is  
> both a performance and footprint benefit to having such a constant,  
> albeit small in either case.  Java ensures a single entry for an  
> empty string exists in a class's literal pool within the bytecode,  
> but I don't know of any other internalization or special handling  
> for this.  Each class that uses the empty string would have its own  
> bytecode to represent the literal empty string.  The constant avoids  
> both this and the instantiation of said string whenever the class  
> itself is instantiated.
>
> I'd also argue that the EMPTY_STRING constant is more readable,  
> although longer to type, than "".  :-P
>
> John Verhaeg
> Red Hat, Inc.
> (314) 336-2950
>
> ----- dna-commits at lists.jboss.org wrote:
> | Author: rhauch
> | Date: 2008-10-28 15:21:10 -0400 (Tue, 28 Oct 2008)
> | New Revision: 594
> |
> | Modified:
> |    trunk/dna-common/src/main/java/org/jboss/dna/common/monitor/ 
> SimpleProgressMonitor.java
> |    trunk/dna-common/src/main/java/org/jboss/dna/common/util/ 
> StringUtil.java
> | Log:
> | Removed the static constant for an empty string, as Java always  
> interns all string literals such as "".  So, there is no performance  
> or efficiency benefit, and its simpler (if not shorter) to use ""  
> rather than a constant.
> |
> |
> | Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/ 
> monitor/SimpleProgressMonitor.java
> | ===================================================================
> | --- trunk/dna-common/src/main/java/org/jboss/dna/common/monitor/ 
> SimpleProgressMonitor.java        2008-10-28 17:55:47 UTC (rev 593)
> | +++ trunk/dna-common/src/main/java/org/jboss/dna/common/monitor/ 
> SimpleProgressMonitor.java        2008-10-28 19:21:10 UTC (rev 594)
> | @@ -32,7 +32,6 @@
> |  import org.jboss.dna.common.collection.ThreadSafeProblems;
> |  import org.jboss.dna.common.i18n.I18n;
> |  import org.jboss.dna.common.util.CheckArg;
> | -import org.jboss.dna.common.util.StringUtil;
> |
> |  /**
> |   * A basic progress monitor.
> | @@ -64,8 +63,8 @@
> |
> |      public SimpleProgressMonitor( String activityName,
> |                                    ProgressMonitor  
> parentProgressMonitor ) {
> | -        this.activityName = activityName == null ?  
> StringUtil.EMPTY_STRING : activityName.trim();
> | -        this.parentActivityName = parentProgressMonitor == null ?  
> StringUtil.EMPTY_STRING : parentProgressMonitor.getActivityName();
> | +        this.activityName = activityName == null ? "" :  
> activityName.trim();
> | +        this.parentActivityName = parentProgressMonitor == null ?  
> "" : parentProgressMonitor.getActivityName();
> |          this.taskName = null;
> |          this.taskNameParams = null;
> |      }
> |
> | Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/ 
> StringUtil.java
> | ===================================================================
> | --- trunk/dna-common/src/main/java/org/jboss/dna/common/util/ 
> StringUtil.java        2008-10-28 17:55:47 UTC (rev 593)
> | +++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/ 
> StringUtil.java        2008-10-28 19:21:10 UTC (rev 594)
> | @@ -45,7 +45,6 @@
> |   */
> |  public class StringUtil {
> |
> | -    public static final String EMPTY_STRING = "";
> |      public static final String[] EMPTY_STRING_ARRAY = new  
> String[0];
> |      private static final Pattern NORMALIZE_PATTERN =  
> Pattern.compile("\\s+");
> |      private static final Pattern PARAMETER_COUNT_PATTERN =  
> Pattern.compile("\\{(\\d+)\\}");
> |
> | _______________________________________________
> | dna-commits mailing list
> | dna-commits at lists.jboss.org
> | https://lists.jboss.org/mailman/listinfo/dna-commits
> |
> _______________________________________________
> dna-commits mailing list
> dna-commits at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/dna-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/dna-commits/attachments/20081028/6fc71b78/attachment.html 


More information about the dna-commits mailing list