Class StringCharArrayAccessor


  • 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
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      static boolean isEnabled()  
      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
      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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • writeStringAsCharArray

        public static void writeStringAsCharArray​(java.io.Writer writer,
                                                  java.lang.String str)
                                           throws java.io.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 output
        str - A String
        Throws:
        java.io.IOException - If an I/O error occurs
      • writeStringAsCharArray

        public static void writeStringAsCharArray​(java.io.Writer writer,
                                                  java.lang.String str,
                                                  int off,
                                                  int len)
                                           throws java.io.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 output
        str - A String
        off - Offset from which to start writing characters
        len - Number of characters to write
        Throws:
        java.io.IOException - If an I/O error occurs
      • createString

        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.
        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()