I think there are two things at stake here, one is that as I understand it,
"new means new", in every case. This is at least partly why the
constructors on soon-to-be value objects are deprecated; they become
meaningless. The other is that if the presumption is that we should
always intern new Strings, I must disagree. Pooling takes time and memory
to manage, and if there are very few duplicates, it's a waste of both. I
believe it should be up to the programmer to decide if this is appropriate
in their situation. Of course, the GC system seems to be capable of
stepping in in some incarnations, which adds something of a counterexample,
but that is, if I recall, configurable.


On Thu, Dec 23, 2021 at 2:53 PM Xeno Amess <xenoam...@gmail.com> wrote:

> never should,as Object can be use as lock.
>
> XenoAmess
> ________________________________
> From: core-libs-dev <core-libs-dev-r...@openjdk.java.net> on behalf of
> Bernd Eckenfels <e...@zusammenkunft.net>
> Sent: Friday, December 24, 2021 5:51:55 AM
> To: alan Snyder <fishgar...@cbfiddle.com>; core-libs-dev <
> core-libs-dev@openjdk.java.net>
> Subject: Re: a quick question about String
>
> new String() always creates a new instance.
>
> Gruss
> Bernd
> --
> http://bernd.eckenfels.net
> ________________________________
> Von: core-libs-dev <core-libs-dev-r...@openjdk.java.net> im Auftrag von
> Alan Snyder <javali...@cbfiddle.com>
> Gesendet: Thursday, December 23, 2021 6:59:18 PM
> An: core-libs-dev <core-libs-dev@openjdk.java.net>
> Betreff: a quick question about String
>
> Do the public constructors of String actually do what their documentation
> says (allocate a new instance), or is there some kind of compiler magic
> that might avoid allocation?
>
>

-- 
Simon Roberts
(303) 249 3613

Reply via email to