org.codehaus.groovy.grails.web.util
Class StringCharArrayAccessor
java.lang.Object
org.codehaus.groovy.grails.web.util.StringCharArrayAccessor
public class StringCharArrayAccessor
- extends 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
- Author:
- Lari Hotari, Sagire Software Oy
Method Summary |
static String |
createString(char[] charBuf)
creates a new java.lang.String by setting the char array directly to the String instance with reflection. |
(package private) static char[] |
getValue(String str)
|
(package private) static char[] |
getValueFallback(String str)
|
static boolean |
isEnabled()
|
static void |
writeStringAsCharArray(Writer writer,
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 |
static void |
writeStringAsCharArray(Writer writer,
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 |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
enabled
static volatile boolean enabled
valueField
static Field valueField
countField
static Field countField
offsetField
static Field offsetField
StringCharArrayAccessor
public StringCharArrayAccessor()
writeStringAsCharArray
public static void writeStringAsCharArray(Writer writer,
String str)
throws IOException
- Writes a portion of a string to a target java.io.Writer with direct access to the char[] of the java.lang.String
- Parameters:
writer
- target java.io.Writer for outputstr
- A String
- Throws:
IOException
- If an I/O error occurs
writeStringAsCharArray
public static void writeStringAsCharArray(Writer writer,
String str,
int off,
int len)
throws IOException
- Writes a portion of a string to a target java.io.Writer with direct access to the char[] of the java.lang.String
- Parameters:
writer
- target java.io.Writer for outputstr
- A Stringoff
- Offset from which to start writing characterslen
- Number of characters to write
- Throws:
IOException
- If an I/O error occurs
getValue
static char[] getValue(String str)
getValueFallback
static char[] getValueFallback(String str)
createString
public static String createString(char[] charBuf)
- creates a new java.lang.String by setting the char array directly to the String instance with reflection.
- Parameters:
charBuf
- char array to be used as java.lang.String content, don't modify it after passing it.
- Returns:
- new java.lang.String
isEnabled
public static boolean isEnabled()
Copyright (c) 2005-2009 The Grails project