Class UnsafeUtil


  • public class UnsafeUtil
    extends Object
    Utility methods for using Unsafe.

    Not available on all JVMs. Util.unsafe can be checked before using this class.

    Author:
    Roman Levenstein
    • Field Detail

      • unsafe

        public static final sun.misc.Unsafe unsafe
        The sun.misc.Unsafe instance, or null if Unsafe is unavailable.
      • byteArrayBaseOffset

        public static final long byteArrayBaseOffset
      • floatArrayBaseOffset

        public static final long floatArrayBaseOffset
      • doubleArrayBaseOffset

        public static final long doubleArrayBaseOffset
      • intArrayBaseOffset

        public static final long intArrayBaseOffset
      • longArrayBaseOffset

        public static final long longArrayBaseOffset
      • shortArrayBaseOffset

        public static final long shortArrayBaseOffset
      • charArrayBaseOffset

        public static final long charArrayBaseOffset
      • booleanArrayBaseOffset

        public static final long booleanArrayBaseOffset
    • Constructor Detail

      • UnsafeUtil

        public UnsafeUtil()
    • Method Detail

      • newDirectBuffer

        public static ByteBuffer newDirectBuffer​(long address,
                                                 int size)
        Create a ByteBuffer that uses the specified off-heap memory address instead of allocating a new one.
        Parameters:
        address - Address of the memory region to be used for a ByteBuffer.
        size - Size in bytes of the memory region.
        Throws:
        UnsupportedOperationException - if creating a ByteBuffer this way is not available.
      • isNewDirectBufferAvailable

        public static boolean isNewDirectBufferAvailable()
        Returns true if newDirectBuffer(long, int) can be called.
      • dispose

        public static void dispose​(ByteBuffer buffer)
        Release a direct buffer immediately rather than waiting for GC.