Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #8116

Re: StringBuilder

Date 2011-09-17 22:44 -0700
From Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com>
Newsgroups comp.lang.java.programmer
Subject Re: StringBuilder
References <96f358c8-a024-40db-b60b-300186c2f813@o10g2000vby.googlegroups.com> <j41fik$3qb$1@news.albasani.net> <j52jgd$iij$1@dont-email.me> <vp7a77lp3e5oe4h79pnmv95vb4lu13spmc@4ax.com>
Message-ID <GeednbWNqODBGOjTnZ2dnUVZ_rqdnZ2d@posted.palinacquisition> (permalink)

Show all headers | View raw


On 9/17/11 3:34 PM, Roedy Green wrote:
> [...]
> StringBuilder composes its string in a char[].  Unfortunately it can't
> simply plop that into a String object at the end.  It has to allocate
> yet another buffer, copy into it, and that becomes your string object. [...]

Are you sure that's the implementation?

In .NET, there is also a String and StringBuilder class pair, and 
StringBuilder.ToString() does in fact just create a new String instance 
using the existing buffer.  It flags itself that it did so, and of 
course then it does have to allocate a new buffer if you mutate the 
StringBuilder instance later.  But the most common scenario is to mutate 
the StringBuilder, then get the String instance just once, discarding 
the StringBuilder immediately after.

I don't really care that much so I'm not going to waste time checking 
myself.  But if anyone does think it's something to worry about, they 
should at least check the actual implementation to make sure it really 
does what they think it does.

In any case, if Java does _not_ implement it that way, I suspect that's 
out of a different decision-making process rather than ignorance.  In 
other words, they have already considered whether it's a worthwhile 
optimization and decided otherwise.  Which strongly suggests that anyone 
worrying a priori about the performance of StringBuilder before they 
have demonstrated it's an actual bottleneck in their program is wasting 
their time.

Pete

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: StringBuilder Stanimir Stamenkov <s7an10@netscape.net> - 2011-09-17 19:56 +0300
  Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-17 20:35 +0200
  Re: StringBuilder Roedy Green <see_website@mindprod.com.invalid> - 2011-09-17 15:34 -0700
    Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-18 01:33 +0200
      Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-18 01:56 +0200
      Re: StringBuilder Roedy Green <see_website@mindprod.com.invalid> - 2011-09-17 20:58 -0700
    Re: StringBuilder Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-09-17 22:44 -0700
      Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-18 09:54 +0200
        Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-18 09:59 +0200
        Re: StringBuilder Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-09-18 07:28 -0700
      Re: StringBuilder Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-09-18 08:15 -0400
        Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-18 15:32 +0200
          Re: StringBuilder Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-09-18 09:50 -0400
            Re: StringBuilder Stanimir Stamenkov <s7an10@netscape.net> - 2011-09-18 17:08 +0300
            Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-18 22:13 +0200
              Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-18 22:29 +0200
                Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-18 22:39 +0200
      Re: StringBuilder Roedy Green <see_website@mindprod.com.invalid> - 2011-09-19 09:45 -0700

csiph-web