Platinum Partner

Proper Use Of String And StringBuffer In Java

// This isn't really code at all, this is a comment that I use 
// over and over again as I go through code written by people 
// who obviously don't understand when to use a String and when
// to use a StringBuffer.


// I put this block of text wherever I find problems with Strings
// and StringBuffers to improve understanding of how each one works
// and when to use one or the other.
//
// Rule #1: Use a StringBuffer if you intend to build a string out of
// dynamic elements. That is, if you are going to include the results
// of function calls or variables as part of the string then you use
// a StringBuffer and do append() calls. StringBuffer's append is
// much faster than using "+" to stick together String objects.
//
// Rule #2: But, if you are just building a string out of static pieces
// of text, it's better to use Strings and "+" than creating a
// StringBuffer and making append calls. Instead just use a String
// and a bunch of "+" signs between the sections. For example:
// String test = "this " + "is " + "a " + "test " + "string";
// is _not_ expensive. Why? Because all the pieces are static text and
// the compiler can make it into this _as it compiles the code_:
// String test = "this is a test string";
//
// Rule #3: For goodness sake, do this:
// StringBuffer test = new StringBuffer();
// test.append("static string ");
// test.append(dynamicCall());
// test.append(" another static string ");
// test.append(someVariable);
// DON'T DO THIS:
// StringBuffer test = new StringBuffer();
// test.append("static string " + dynamicCall());
// test.append(" another static string " + someVariable);
// This is officially the worst of all worlds. You need to use a
// StringBuffer in this case because you've got some dynamic parts
// but there is still addition going on between dynamic parts (the
// function call and variable) and static strings. Ack!
//
// If you can't remember anything else, remember this:
// static strings = String and "+"
// dynamic strings = StringBuffer and append() 
{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}