Class PlatformDependent0


  • final class PlatformDependent0
    extends java.lang.Object
    The PlatformDependent operations which requires access to sun.misc.*.
    • Field Detail

      • ADDRESS_FIELD_OFFSET

        private static final long ADDRESS_FIELD_OFFSET
      • BYTE_ARRAY_BASE_OFFSET

        private static final long BYTE_ARRAY_BASE_OFFSET
      • INT_ARRAY_BASE_OFFSET

        private static final long INT_ARRAY_BASE_OFFSET
      • INT_ARRAY_INDEX_SCALE

        private static final long INT_ARRAY_INDEX_SCALE
      • LONG_ARRAY_BASE_OFFSET

        private static final long LONG_ARRAY_BASE_OFFSET
      • LONG_ARRAY_INDEX_SCALE

        private static final long LONG_ARRAY_INDEX_SCALE
      • DIRECT_BUFFER_CONSTRUCTOR

        private static final java.lang.reflect.Constructor<?> DIRECT_BUFFER_CONSTRUCTOR
      • ALLOCATE_ARRAY_METHOD

        private static final java.lang.reflect.Method ALLOCATE_ARRAY_METHOD
      • ALIGN_SLICE

        private static final java.lang.reflect.Method ALIGN_SLICE
      • JAVA_VERSION

        private static final int JAVA_VERSION
      • IS_ANDROID

        private static final boolean IS_ANDROID
      • EXPLICIT_NO_UNSAFE_CAUSE

        private static final java.lang.Throwable EXPLICIT_NO_UNSAFE_CAUSE
      • STORE_FENCE_AVAILABLE

        private static final boolean STORE_FENCE_AVAILABLE
      • UNSAFE_UNAVAILABILITY_CAUSE

        private static final java.lang.Throwable UNSAFE_UNAVAILABILITY_CAUSE
      • INTERNAL_UNSAFE

        private static final java.lang.Object INTERNAL_UNSAFE
      • RUNNING_IN_NATIVE_IMAGE

        private static final boolean RUNNING_IN_NATIVE_IMAGE
      • IS_EXPLICIT_TRY_REFLECTION_SET_ACCESSIBLE

        private static final boolean IS_EXPLICIT_TRY_REFLECTION_SET_ACCESSIBLE
      • IS_VIRTUAL_THREAD_METHOD

        static final java.lang.reflect.Method IS_VIRTUAL_THREAD_METHOD
      • BASE_VIRTUAL_THREAD_CLASS

        static final java.lang.Class<?> BASE_VIRTUAL_THREAD_CLASS
      • UNSAFE

        static final sun.misc.Unsafe UNSAFE
      • UNSAFE_COPY_THRESHOLD

        private static final long UNSAFE_COPY_THRESHOLD
        Limits the number of bytes to copy per Unsafe.copyMemory(long, long, long) to allow safepoint polling during a large copy.
        See Also:
        Constant Field Values
      • UNALIGNED

        private static final boolean UNALIGNED
      • BITS_MAX_DIRECT_MEMORY

        private static final long BITS_MAX_DIRECT_MEMORY
    • Constructor Detail

      • PlatformDependent0

        private PlatformDependent0()
    • Method Detail

      • getIsVirtualThreadMethod

        private static java.lang.reflect.Method getIsVirtualThreadMethod()
      • getBaseVirtualThreadClass

        private static java.lang.Class<?> getBaseVirtualThreadClass()
      • isVirtualThread

        static boolean isVirtualThread​(java.lang.Thread thread)
        Parameters:
        thread - The thread to be checked.
        Returns:
        true if this Thread is a virtual thread, false otherwise.
      • unsafeStaticFieldOffsetSupported

        private static boolean unsafeStaticFieldOffsetSupported()
      • isExplicitNoUnsafe

        static boolean isExplicitNoUnsafe()
      • explicitNoUnsafeCause0

        private static java.lang.Throwable explicitNoUnsafeCause0()
      • isUnaligned

        static boolean isUnaligned()
      • bitsMaxDirectMemory

        static long bitsMaxDirectMemory()
        Any value >= 0 should be considered as a valid max direct memory value.
      • hasUnsafe

        static boolean hasUnsafe()
      • getUnsafeUnavailabilityCause

        static java.lang.Throwable getUnsafeUnavailabilityCause()
      • unalignedAccess

        static boolean unalignedAccess()
      • throwException

        static void throwException​(java.lang.Throwable cause)
      • hasDirectBufferNoCleanerConstructor

        static boolean hasDirectBufferNoCleanerConstructor()
      • reallocateDirectNoCleaner

        static java.nio.ByteBuffer reallocateDirectNoCleaner​(java.nio.ByteBuffer buffer,
                                                             int capacity)
      • allocateDirectNoCleaner

        static java.nio.ByteBuffer allocateDirectNoCleaner​(int capacity)
      • hasAlignSliceMethod

        static boolean hasAlignSliceMethod()
      • alignSlice

        static java.nio.ByteBuffer alignSlice​(java.nio.ByteBuffer buffer,
                                              int alignment)
      • hasAllocateArrayMethod

        static boolean hasAllocateArrayMethod()
      • allocateUninitializedArray

        static byte[] allocateUninitializedArray​(int size)
      • newDirectBuffer

        static java.nio.ByteBuffer newDirectBuffer​(long address,
                                                   int capacity)
      • directBufferAddress

        static long directBufferAddress​(java.nio.ByteBuffer buffer)
      • byteArrayBaseOffset

        static long byteArrayBaseOffset()
      • getObject

        static java.lang.Object getObject​(java.lang.Object object,
                                          long fieldOffset)
      • getInt

        static int getInt​(java.lang.Object object,
                          long fieldOffset)
      • safeConstructPutInt

        static void safeConstructPutInt​(java.lang.Object object,
                                        long fieldOffset,
                                        int value)
      • getLong

        private static long getLong​(java.lang.Object object,
                                    long fieldOffset)
      • objectFieldOffset

        static long objectFieldOffset​(java.lang.reflect.Field field)
      • getByte

        static byte getByte​(long address)
      • getShort

        static short getShort​(long address)
      • getInt

        static int getInt​(long address)
      • getLong

        static long getLong​(long address)
      • getByte

        static byte getByte​(byte[] data,
                            int index)
      • getByte

        static byte getByte​(byte[] data,
                            long index)
      • getShort

        static short getShort​(byte[] data,
                              int index)
      • getInt

        static int getInt​(byte[] data,
                          int index)
      • getInt

        static int getInt​(int[] data,
                          long index)
      • getIntVolatile

        static int getIntVolatile​(long address)
      • putIntOrdered

        static void putIntOrdered​(long adddress,
                                  int newValue)
      • getLong

        static long getLong​(byte[] data,
                            int index)
      • getLong

        static long getLong​(long[] data,
                            long index)
      • putByte

        static void putByte​(long address,
                            byte value)
      • putShort

        static void putShort​(long address,
                             short value)
      • putInt

        static void putInt​(long address,
                           int value)
      • putLong

        static void putLong​(long address,
                            long value)
      • putByte

        static void putByte​(byte[] data,
                            int index,
                            byte value)
      • putByte

        static void putByte​(java.lang.Object data,
                            long offset,
                            byte value)
      • putShort

        static void putShort​(byte[] data,
                             int index,
                             short value)
      • putInt

        static void putInt​(byte[] data,
                           int index,
                           int value)
      • putLong

        static void putLong​(byte[] data,
                            int index,
                            long value)
      • putObject

        static void putObject​(java.lang.Object o,
                              long offset,
                              java.lang.Object x)
      • copyMemory

        static void copyMemory​(long srcAddr,
                               long dstAddr,
                               long length)
      • copyMemoryWithSafePointPolling

        private static void copyMemoryWithSafePointPolling​(long srcAddr,
                                                           long dstAddr,
                                                           long length)
      • copyMemory

        static void copyMemory​(java.lang.Object src,
                               long srcOffset,
                               java.lang.Object dst,
                               long dstOffset,
                               long length)
      • copyMemoryWithSafePointPolling

        private static void copyMemoryWithSafePointPolling​(java.lang.Object src,
                                                           long srcOffset,
                                                           java.lang.Object dst,
                                                           long dstOffset,
                                                           long length)
      • setMemory

        static void setMemory​(long address,
                              long bytes,
                              byte value)
      • setMemory

        static void setMemory​(java.lang.Object o,
                              long offset,
                              long bytes,
                              byte value)
      • equals

        static boolean equals​(byte[] bytes1,
                              int startPos1,
                              byte[] bytes2,
                              int startPos2,
                              int length)
      • equalsConstantTime

        static int equalsConstantTime​(byte[] bytes1,
                                      int startPos1,
                                      byte[] bytes2,
                                      int startPos2,
                                      int length)
      • isZero

        static boolean isZero​(byte[] bytes,
                              int startPos,
                              int length)
      • hashCodeAscii

        static int hashCodeAscii​(byte[] bytes,
                                 int startPos,
                                 int length)
      • hashCodeAsciiCompute

        static int hashCodeAsciiCompute​(long value,
                                        int hash)
      • hashCodeAsciiSanitize

        static int hashCodeAsciiSanitize​(int value)
      • hashCodeAsciiSanitize

        static int hashCodeAsciiSanitize​(short value)
      • hashCodeAsciiSanitize

        static int hashCodeAsciiSanitize​(byte value)
      • getClassLoader

        static java.lang.ClassLoader getClassLoader​(java.lang.Class<?> clazz)
      • getContextClassLoader

        static java.lang.ClassLoader getContextClassLoader()
      • getSystemClassLoader

        static java.lang.ClassLoader getSystemClassLoader()
      • addressSize

        static int addressSize()
      • allocateMemory

        static long allocateMemory​(long size)
      • freeMemory

        static void freeMemory​(long address)
      • reallocateMemory

        static long reallocateMemory​(long address,
                                     long newSize)
      • isAndroid

        static boolean isAndroid()
      • isAndroid0

        private static boolean isAndroid0()
      • explicitTryReflectionSetAccessible0

        private static boolean explicitTryReflectionSetAccessible0()
      • isExplicitTryReflectionSetAccessible

        static boolean isExplicitTryReflectionSetAccessible()
      • javaVersion

        static int javaVersion()
      • javaVersion0

        private static int javaVersion0()
      • majorVersionFromJavaSpecificationVersion

        static int majorVersionFromJavaSpecificationVersion()
      • majorVersion

        static int majorVersion​(java.lang.String javaSpecVersion)