hg: jdk8/tl/jdk: 6924259: Remove offset and count fields from java.lang.String
Ulf Zibis
Ulf.Zibis at gmx.de
Mon Jun 4 15:39:43 UTC 2012
In getBytes() you do not need:
int n = srcEnd;
int i = srcBegin;
You could already use srcEnd srcBegin
@@ -1015,16 +968,16 @@ public final class String
return true;
}
if (anObject instanceof String) {
- String anotherString = (String)anObject;
- int n = count;
- if (n == anotherString.count) {
+ String anotherString = (String) anObject;
+ int n = value.length;
+ if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
- int i = offset;
- int j = anotherString.offset;
+ int i = 0;
while (n-- != 0) {
- if (v1[i++] != v2[j++])
- return false;
+ if (v1[i] != v2[i])
+ return false;
+ i++;
}
return true;
}
Why not simply? :
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
while (n-- != 0) {
if (v1[n] != v2[n])
return false;
}
return true;
}
This additionally has the advantage, that mostly the difference would be found quicker, as strings
of same length often would differ at the end e.g.:
VeryLongText_1
VeryLongText_2
Same for other equals and compare methods.
BTW: You again have inserted a space after casts. ;-)
-Ulf
Am 31.05.2012 05:22, schrieb mike.duigou at oracle.com:
> Changeset: 2c773daa825d
> Author: mduigou
> Date: 2012-05-17 10:06 -0700
> URL: http://hg.openjdk.java.net/jdk8/tl/jdk/rev/2c773daa825d
>
> 6924259: Remove offset and count fields from java.lang.String
> Summary: Removes the use of shared character array buffers by String along with the two fields needed to support the use of shared buffers.
> Reviewed-by: alanb, mduigou, forax, briangoetz
> Contributed-by: brian.doherty at oracle.com
>
> ! src/share/classes/java/lang/Integer.java
> ! src/share/classes/java/lang/Long.java
> ! src/share/classes/java/lang/String.java
> ! src/share/classes/java/lang/StringCoding.java
>
>
More information about the core-libs-dev
mailing list