Lower overhead String encoding/decoding
Remi Forax
forax at univ-mlv.fr
Tue Oct 28 15:06:31 UTC 2014
On 10/28/2014 03:52 PM, Alan Bateman wrote:
> On 26/10/2014 21:10, Richard Warburton wrote:
>> :
>>
>> Thanks for taking the time to look at this - most appreciated. I've
>> pushed the latest iteration to
>> http://cr.openjdk.java.net/~rwarburton/string-patch-webrev-8/
>> <http://cr.openjdk.java.net/%7Erwarburton/string-patch-webrev-8/>.
>>
> I think this is looking good.
>
> For the constructor then the words "decoding the specified byte
> buffer", it might be a bit clearer as "decoding the remaining bytes in
> the ...".
>
> For getBytes(ByteBuffer, Charset) then the position is advanced by the
> bytes written, no need to mention the number of chars read here.
>
> In the constructor then you make it clear that malformed/unmappable
> sequences use the default replacement. This is important to state in
> the getBytes methods too because the encoding can fail.
>
> -Alan.
>
>
Hi Richard, hi all,
Two comments,
You replace the nullcheck in getBytes() by a requireNonNull and at the
same time, you don"t use requireNonNull in String(ByteBuffer,Charset),
no very logical isn't it ?
I think you need a supplementary constructor that takes a ByteBuffer and
a charset name as a String,
i may be wrong, but it seems that every constructor of String that takes
a Charset has a dual constructor that takes a Charset as a String.
As far as I remember, a constructor that takes a Charset as a String may
be faster because you can share the character decoder
instead of creating a new one.
cheers,
Rémi
More information about the core-libs-dev
mailing list