提交 06da2f53 编写于 作者: L lpriima

8067471: Use private static final char[0] for empty Strings

Reviewed-by: igerasim, redestad, shade
上级 6134bd0e
...@@ -135,7 +135,7 @@ public final class String ...@@ -135,7 +135,7 @@ public final class String
* unnecessary since Strings are immutable. * unnecessary since Strings are immutable.
*/ */
public String() { public String() {
this.value = new char[0]; this.value = "".value;
} }
/** /**
...@@ -191,9 +191,15 @@ public final class String ...@@ -191,9 +191,15 @@ public final class String
if (offset < 0) { if (offset < 0) {
throw new StringIndexOutOfBoundsException(offset); throw new StringIndexOutOfBoundsException(offset);
} }
if (count <= 0) {
if (count < 0) { if (count < 0) {
throw new StringIndexOutOfBoundsException(count); throw new StringIndexOutOfBoundsException(count);
} }
if (offset <= value.length) {
this.value = "".value;
return;
}
}
// Note: offset or count might be near -1>>>1. // Note: offset or count might be near -1>>>1.
if (offset > value.length - count) { if (offset > value.length - count) {
throw new StringIndexOutOfBoundsException(offset + count); throw new StringIndexOutOfBoundsException(offset + count);
...@@ -233,9 +239,15 @@ public final class String ...@@ -233,9 +239,15 @@ public final class String
if (offset < 0) { if (offset < 0) {
throw new StringIndexOutOfBoundsException(offset); throw new StringIndexOutOfBoundsException(offset);
} }
if (count <= 0) {
if (count < 0) { if (count < 0) {
throw new StringIndexOutOfBoundsException(count); throw new StringIndexOutOfBoundsException(count);
} }
if (offset <= codePoints.length) {
this.value = "".value;
return;
}
}
// Note: offset or count might be near -1>>>1. // Note: offset or count might be near -1>>>1.
if (offset > codePoints.length - count) { if (offset > codePoints.length - count) {
throw new StringIndexOutOfBoundsException(offset + count); throw new StringIndexOutOfBoundsException(offset + count);
...@@ -782,7 +794,7 @@ public final class String ...@@ -782,7 +794,7 @@ public final class String
* subarray of {@code dst} starting at index {@code dstBegin} * subarray of {@code dst} starting at index {@code dstBegin}
* and ending at index: * and ending at index:
* <blockquote><pre> * <blockquote><pre>
* dstbegin + (srcEnd-srcBegin) - 1 * dstBegin + (srcEnd-srcBegin) - 1
* </pre></blockquote> * </pre></blockquote>
* *
* @param srcBegin index of the first character in the string * @param srcBegin index of the first character in the string
...@@ -827,7 +839,7 @@ public final class String ...@@ -827,7 +839,7 @@ public final class String
* dst} starting at index {@code dstBegin} and ending at index: * dst} starting at index {@code dstBegin} and ending at index:
* *
* <blockquote><pre> * <blockquote><pre>
* dstbegin + (srcEnd-srcBegin) - 1 * dstBegin + (srcEnd-srcBegin) - 1
* </pre></blockquote> * </pre></blockquote>
* *
* @deprecated This method does not properly convert characters into * @deprecated This method does not properly convert characters into
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册