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(a)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(a)lists.jboss.org
|
https://lists.jboss.org/mailman/listinfo/dna-commits
|
_______________________________________________
dna-commits mailing list
dna-commits(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/dna-commits