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
|