question regarding the java.lang.String design

Xiaobin Lu Xiaobin.Lu at Sun.COM
Fri Jan 30 10:42:29 PST 2009


Resend the email to hotspot-dev at openjdk.java.net.
-Xiaobin

Xiaobin Lu wrote:
> Hi folks,
>
> While I am looking at the java.lang.String implementation, I noticed 
> that it has "offset" and "count" field in java.lang.String. For the 
> offset field, I only found two places which set that field, but I 
> believe they can be got rid of too. The two places are 
> String(StringBuffer buffer) & String(StringBuilder builder).
>
> My question is that if String is immutable, why do we need to carry 
> these two fields? String could be more compacted without these two 
> fields. The equals to method can be more efficiently implemented as 
> just calling java.util.Array.equals(v1, v2) which is intrinsified on 
> x86 at least.
>
> Another crazy thought is that we can compact the character array to a 
> byte array if we don't have any characters other than ASCII (which we 
> might use a boolean flag to indicate that).
>
> I'd appreciate your insight on this.
>
> -Xiaobin
>
>
>




More information about the hotspot-dev mailing list