public class StringCharArrayAccessor extends java.lang.Object
Provides optimized access to java.lang.String internals - Optimized way of creating java.lang.String by reusing a char[] buffer - Optimized way of writing String to java.io.Writer java.lang.String creation reusing a char[] buffer requires Java 1.5+ System property "stringchararrayaccessor.disabled" disables this hack. -Dstringchararrayaccessor.disabled=true Read JSR-133, "9.1.1 Post-Construction Modification of Final Fields" http://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf
Modifiers | Name | Description |
---|---|---|
static java.lang.reflect.Field |
countField |
|
static boolean |
enabled |
|
static boolean |
jdk7_string |
|
static java.lang.reflect.Field |
offsetField |
|
static java.lang.reflect.Field |
valueField |
Constructor and description |
---|
private StringCharArrayAccessor
() |
Type Params | Return Type | Name and description |
---|---|---|
|
public static java.lang.String |
createString(char[] charBuf) creates a new java.lang.String by setting the char array directly to the String instance with reflection. |
|
private static java.lang.String |
createStringFallback(char[] charBuf) |
|
static char[] |
getValue(java.lang.String str) |
|
static char[] |
getValueFallback(java.lang.String str) |
|
private static void |
handleError(java.lang.Exception e) |
|
public static boolean |
isEnabled() |
|
public static void |
writeStringAsCharArray(java.io.Writer writer, java.lang.String str) Writes a portion of a string to a target java.io.Writer with direct access to the char[] of the java.lang.String |
|
public static void |
writeStringAsCharArray(java.io.Writer writer, java.lang.String str, int off, int len) Writes a portion of a string to a target java.io.Writer with direct access to the char[] of the java.lang.String |
|
private static void |
writeStringFallback(java.io.Writer writer, java.lang.String str, int off, int len) |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
creates a new java.lang.String by setting the char array directly to the String instance with reflection.
charBuf
- char array to be used as java.lang.String content, don't modify it after passing it.Writes a portion of a string to a target java.io.Writer with direct access to the char[] of the java.lang.String
writer
- target java.io.Writer for outputstr
- A StringWrites a portion of a string to a target java.io.Writer with direct access to the char[] of the java.lang.String
writer
- target java.io.Writer for outputstr
- A Stringoff
- Offset from which to start writing characterslen
- Number of characters to write