📜 ⬆️ ⬇️

Full list of intrinsic functions in HotSpot in JDK 7, 8, 9 and 10

An intrinsic or intrinsic function is a function that the JIT compiler can embed instead of calling Java and JNI code for optimization. An important conclusion from this is that intrinsic functions are not available in interpreter mode. By default, HotSpot uses two C1 and C2 JIT compilers, so the implementation of intrinsic functions may be available for each of the JIT compilers. Differences in the implementation of intrinsic functions for different JIT compilers are caused by different internal code representation ( intermediate representation - IR ).

In HotSpot several hundreds of intrinsics are implemented (their number grows from release to release). A description of all intrinsic functions can be found in the OpenJDK sources in the vmSymbols.hpp file. Below are the full lists of intrinsics for JDK 7 ( vmSymbols.hpp ), JDK 8 ( vmSymbols.hpp ), JDK 9 ( vmSymbols.hpp ) and JDK 10 ( vmSymbols.hpp ).

The description is as follows:

 < > <java->.<  > 

Intrinsic functions in JDK 7


Intrinsic functions in JDK 7

java.lang.Object


 _hashCode java.lang.Object.hashCode() _getClass java.lang.Object.getClass() _clone java.lang.Object.clone() _Object_init java.lang.Object() 

java.lang.Math


 _dabs java.lang.Math.abs(double) _dsin java.lang.Math.sin(double) _dcos java.lang.Math.cos(double) _dtan java.lang.Math.tan(double) _datan2 java.lang.Math.atan2(double, double) _dsqrt java.lang.Math.sqrt(double) _dlog java.lang.Math.log(double) _dlog10 java.lang.Math.log10(double) _dpow java.lang.Math.pow(double, double) _dexp java.lang.Math.exp(double) _min java.lang.Math.min(int, int) _max java.lang.Math.max(int, int) 

Double Float


 _floatToRawIntBits java.lang.Float.floatToRawIntBits(float) _floatToIntBits java.lang.Float.floatToIntBits(float) _intBitsToFloat java.lang.Float.intBitsToFloat(int) _doubleToRawLongBits java.lang.Double.doubleToRawLongBits(double) _doubleToLongBits java.lang.Double.doubleToLongBits(double) _longBitsToDouble java.lang.Double.longBitsToDouble(long) 

Integer, Long, Character, Short


 _numberOfLeadingZeros_i java.lang.Integer.numberOfLeadingZeros(int) _numberOfLeadingZeros_l java.lang.Long.numberOfLeadingZeros(long) _numberOfTrailingZeros_i java.lang.Integer.numberOfTrailingZeros(int) _numberOfTrailingZeros_l java.lang.Long.numberOfTrailingZeros(long) _bitCount_i java.lang.Integer.bitCount(int) _bitCount_l java.lang.Long.bitCount(long) _reverseBytes_i java.lang.Integer.reverseBytes(int) _reverseBytes_l java.lang.Long.reverseBytes(long) _reverseBytes_c java.lang.Character.reverseBytes(char) _reverseBytes_s java.lang.Short.reverseBytes(short) _Integer_toString java.lang.Integer.toString(int) 

java.lang.System


 _identityHashCode java.lang.System.identityHashCode(Object) _currentTimeMillis java.lang.System.currentTimeMillis() _nanoTime java.lang.System.nanoTime() _arraycopy java.lang.System.arraycopy(Object, int, Object, int, int) 

java.lang.Thread


 _isInterrupted java.lang.Thread.isInterrupted(boolean) _currentThread java.lang.Thread.currentThread() 

java.lang.Class


 _isAssignableFrom java.lang.Class.isAssignableFrom(Class) _isInstance java.lang.Class.isInstance(Object) _getModifiers java.lang.Class.getModifiers() _isInterface java.lang.Class.isInterface() _isArray java.lang.Class.isArray() _isPrimitive java.lang.Class.isPrimitive() _getSuperclass java.lang.Class.getSuperclass() _getComponentType java.lang.Class.getComponentType() 

Reflection


 _getClassAccessFlags sun.reflect.Reflection.getClassAccessFlags(Class) _getCallerClass sun.reflect.Reflection.getCallerClass(int) _getLength java.lang.reflect.Array.getLength(Object) _newArray java.lang.reflect.Array.newArray(Class, int) _invoke java.lang.reflect.Method.invoke(Object, Object...) 

java.util.Arrays


 _copyOf java.util.Arrays.copyOf(Object[], int, Class) _copyOfRange java.util.Arrays.copyOfRange(Object[], int, int, Class) _equalsC java.util.Arrays.equals(char[], char[]) 

java.lang.String


 _compareTo java.lang.String.compareTo(String) _indexOf java.lang.String.indexOf(String) _equals java.lang.String.equals(Object) _String_String java.lang.String(String) 

java.nio.Buffer


 _checkIndex java.nio.Buffer.checkIndex(int) 

java.lang.ref.Reference


 _Reference_get java.lang.ref.Reference.get() 

Cryptography


 _aescrypt_encryptBlock com.sun.crypto.provider.AESCrypt.encryptBlock(byte[], in, byte[], int) _aescrypt_decryptBlock com.sun.crypto.provider.AESCrypt.decryptBlock(byte[], in, byte[], int) _cipherBlockChaining_encryptAESCrypt com.sun.crypto.provider.CipherBlockChaining.encrypt(byte[], int, int, byte[], int) _cipherBlockChaining_decryptAESCrypt com.sun.crypto.provider.CipherBlockChaining.decrypt(byte[], int, int, byte[], int) 

sun.misc.Unsafe


 _allocateInstance sun.misc.Unsafe.allocateInstance(Class) _copyMemory sun.misc.Unsafe.copyMemory(Object, long, Object, long, long) _park sun.misc.Unsafe.park(boolean, long) _unpark sun.misc.Unsafe.unpark(Object) _getObject sun.misc.Unsafe.getObject(Object, long) _getBoolean sun.misc.Unsafe.getBoolean(Object, long) _getByte sun.misc.Unsafe.getByte(Object, long) _getShort sun.misc.Unsafe.getShort(Object, long) _getChar sun.misc.Unsafe.getChar(Object, long) _getInt sun.misc.Unsafe.getInt(Object, long) _getLong sun.misc.Unsafe.getLong(Object, long) _getFloat sun.misc.Unsafe.getFloat(Object, long) _getDouble sun.misc.Unsafe.getDouble(Object, long) _putObject sun.misc.Unsafe.putObject(Object, long, Object) _putBoolean sun.misc.Unsafe.putBoolean(Object, long, boolean) _putByte sun.misc.Unsafe.putByte(Object, long, byte) _putShort sun.misc.Unsafe.putShort(Object, long, short) _putChar sun.misc.Unsafe.putChar(Object, long, char) _putInt sun.misc.Unsafe.putInt(Object, long, int) _putLong sun.misc.Unsafe.putLong(Object, long, long) _putFloat sun.misc.Unsafe.putFloat(Object, long, float) _putDouble sun.misc.Unsafe.putDouble(Object, long, double) _getObjectVolatile sun.misc.Unsafe.getObjectVolatile(Object, long) _getBooleanVolatile sun.misc.Unsafe.getBooleanVolatile(Object, long) _getByteVolatile sun.misc.Unsafe.getByteVolatile(Object, long) _getShortVolatile sun.misc.Unsafe.getShortVolatile(Object, long) _getCharVolatile sun.misc.Unsafe.getCharVolatile(Object, long) _getIntVolatile sun.misc.Unsafe.getIntVolatile(Object, long) _getLongVolatile sun.misc.Unsafe.getLongVolatile(Object, long) _getFloatVolatile sun.misc.Unsafe.getFloatVolatile(Object, long) _getDoubleVolatile sun.misc.Unsafe.getDoubleVolatile(Object, long) _putObjectVolatile sun.misc.Unsafe.putObjectVolatile(Object, long, Object) _putBooleanVolatile sun.misc.Unsafe.putBooleanVolatile(Object, long, boolean) _putByteVolatile sun.misc.Unsafe.putByteVolatile(Object, long, byte) _putShortVolatile sun.misc.Unsafe.putShortVolatile(Object, long, short) _putCharVolatile sun.misc.Unsafe.putCharVolatile(Object, long, char) _putIntVolatile sun.misc.Unsafe.putIntVolatile(Object, long, int) _putLongVolatile sun.misc.Unsafe.putLongVolatile(Object, long, long) _putFloatVolatile sun.misc.Unsafe.putFloatVolatile(Object, long, float) _putDoubleVolatile sun.misc.Unsafe.putDoubleVolatile(Object, long, double) _getByte_raw sun.misc.Unsafe.getByte(long) _getShort_raw sun.misc.Unsafe.getShort(long) _getChar_raw sun.misc.Unsafe.getChar(long) _getInt_raw sun.misc.Unsafe.getInt(long) _getLong_raw sun.misc.Unsafe.getLong(long) _getFloat_raw sun.misc.Unsafe.getFloat(long) _getDouble_raw sun.misc.Unsafe.getDouble(long) _getAddress_raw sun.misc.Unsafe.getAddress(long) _putByte_raw sun.misc.Unsafe.putByte(long, byte) _putShort_raw sun.misc.Unsafe.putShort(long, short) _putChar_raw sun.misc.Unsafe.putChar(long, char) _putInt_raw sun.misc.Unsafe.putInt(long, int) _putLong_raw sun.misc.Unsafe.putLong(long, long) _putFloat_raw sun.misc.Unsafe.putFloat(long, float) _putDouble_raw sun.misc.Unsafe.putDouble(long, double) _putAddress_raw sun.misc.Unsafe.putAddress(long, long) _compareAndSwapObject sun.misc.Unsafe.compareAndSwapObject(Object, long, Object, Object) _compareAndSwapLong sun.misc.Unsafe.compareAndSwapLong(Object, long, long, long) _compareAndSwapInt sun.misc.Unsafe.compareAndSwapInt(Object, long, int, int) _putOrderedObject sun.misc.Unsafe.putOrderedObject(Object, long, Object) _putOrderedLong sun.misc.Unsafe.putOrderedLong(Object, long, long) _putOrderedInt sun.misc.Unsafe.putOrderedInt(Object, long, int) _getAndAddInt sun.misc.Unsafe.getAndAddInt(Object, long, int) _getAndAddLong sun.misc.Unsafe.getAndAddLong(Object, long, long) _getAndSetInt sun.misc.Unsafe.getAndSet(Object, long, int) _getAndSetLong sun.misc.Unsafe.getAndSet(Object, long, long) _getAndSetObject sun.misc.Unsafe.getAndSet(Object, long, Object) _prefetchRead sun.misc.Unsafe.prefetchRead(Object, long) _prefetchWrite sun.misc.Unsafe.prefetchWrite(Object, long) _prefetchReadStatic sun.misc.Unsafe.prefetchReadStatic(Object, long) _prefetchWriteStatic sun.misc.Unsafe.prefetchWriteStatic(Object, long) 

lava.lang.Throwable


 _fillInStackTrace java.lang.Throwable.fillInStackTrace() 

java.lang.StringBuilder


 _StringBuilder_void java.lang.StringBuilder() _StringBuilder_int java.lang.StringBuilder(int) _StringBuilder_String java.lang.StringBuilder(String) _StringBuilder_append_char java.lang.StringBuilder.append(char) _StringBuilder_append_int java.lang.StringBuilder.append(int) _StringBuilder_append_String java.lang.StringBuilder.append(String) _StringBuilder_toString java.lang.StringBuilder.toString() 

java.lang.StringBuffer


 _StringBuffer_void java.lang.StringBuffer() _StringBuffer_int java.lang.StringBuffer(int) _StringBuffer_String java.lang.StringBuffer(String) _StringBuffer_append_char java.lang.StringBuffer.append(char) _StringBuffer_append_int java.lang.StringBuffer.append(int) _StringBuffer_append_String java.lang.StringBuffer.append(String) _StringBuffer_toString java.lang.StringBuffer.toString() 

java.lang.invoke.MethodHandle


 _invokeGeneric java.lang.invoke.MethodHandle.invoke* _invokeBasic java.lang.invoke.MethodHandle.invokeBasic* _linkToVirtual java.lang.invoke.MethodHandle.linkToVirtual* _linkToStatic java.lang.invoke.MethodHandle.linkToStatic* _linkToSpecial java.lang.invoke.MethodHandle.linkToSpecial* _linkToInterface java.lang.invoke.MethodHandle.linkToInterface* _compiledLambdaForm java.lang.invoke.MethodHandle.<compiledLambdaForm>* 

Boxing and unboxing


 _booleanValue java.lang.Boolean.booleanValue() _byteValue java.lang.Byte.byteValue() _charValue java.lang.Character.charValue() _shortValue java.lang.Short.shortValue() _intValue java.lang.Integer.intValue() _longValue java.lang.Long.longValue() _floatValue java.lang.Float.floatValue() _doubleValue java.lang.Double.doubleValue() _Boolean_valueOf java.lang.Boolean.valueOf(boolean) _Byte_valueOf java.lang.Byte.valueOf(byte) _Character_valueOf java.lang.Character.valueOf(char) _Short_valueOf java.lang.Short.valueOf(short) _Integer_valueOf java.lang.Integer.valueOf(int) _Long_valueOf java.lang.Long.valueOf(long) _Float_valueOf java.lang.Float.valueOf(float) _Double_valueOf java.lang.Double.valueOf(double) 

Intrinsic functions in JDK 8


Intrinsic functions in JDK 8

java.lang.Object


 _hashCode java.lang.Object.hashCode() _getClass java.lang.Object.getClass() _clone java.lang.Object.clone() _Object_init java.lang.Object() 

java.lang.Math


 _dabs java.lang.Math.abs(double) _dsin java.lang.Math.sin(double) _dcos java.lang.Math.cos(double) _dtan java.lang.Math.tan(double) _datan2 java.lang.Math.atan2(double, double) _dsqrt java.lang.Math.sqrt(double) _dlog java.lang.Math.log(double) _dlog10 java.lang.Math.log10(double) _dpow java.lang.Math.pow(double, double) _dexp java.lang.Math.exp(double) _min java.lang.Math.min(int, int) _max java.lang.Math.max(int, int) _addExactI java.lang.Math.addExact(int, int) _addExactL java.lang.Math.addExact(long, long) _decrementExactI java.lang.Math.decrementExact(int) _decrementExactL java.lang.Math.decrementExact(long) _incrementExactI java.lang.Math.incrementExact(int) _incrementExactL java.lang.Math.incrementExact(long) _multiplyExactI java.lang.Math.multiplyExact(int, int) _multiplyExactL java.lang.Math.multiplyExact(long, long) _negateExactI java.lang.Math.negateExact(int) _negateExactL java.lang.Math.negateExact(long) _subtractExactI java.lang.Math.subtractExact(int, int) _subtractExactL java.lang.Math.subtractExact(long, long) 

In JDK 8, new methods have been added to the java.lang.Math class and corresponding intrinsic functions for them.
')

Double Float


 _floatToRawIntBits java.lang.Float.floatToRawIntBits(float) _floatToIntBits java.lang.Float.floatToIntBits(float) _intBitsToFloat java.lang.Float.intBitsToFloat(int) _doubleToRawLongBits java.lang.Double.doubleToRawLongBits(double) _doubleToLongBits java.lang.Double.doubleToLongBits(double) _longBitsToDouble java.lang.Double.longBitsToDouble(long) 

Integer, Long, Character, Short


 _numberOfLeadingZeros_i java.lang.Integer.numberOfLeadingZeros(int) _numberOfLeadingZeros_l java.lang.Long.numberOfLeadingZeros(long) _numberOfTrailingZeros_i java.lang.Integer.numberOfTrailingZeros(int) _numberOfTrailingZeros_l java.lang.Long.numberOfTrailingZeros(long) _bitCount_i java.lang.Integer.bitCount(int) _bitCount_l java.lang.Long.bitCount(long) _reverseBytes_i java.lang.Integer.reverseBytes(int) _reverseBytes_l java.lang.Long.reverseBytes(long) _reverseBytes_c java.lang.Character.reverseBytes(char) _reverseBytes_s java.lang.Short.reverseBytes(short) _Integer_toString java.lang.Integer.toString(int) 

java.lang.System


 _identityHashCode java.lang.System.identityHashCode(Object) _currentTimeMillis java.lang.System.currentTimeMillis() _nanoTime java.lang.System.nanoTime() _arraycopy java.lang.System.arraycopy(Object, int, Object, int, int) 

java.lang.Thread


 _isInterrupted java.lang.Thread.isInterrupted(boolean) _currentThread java.lang.Thread.currentThread() 

java.lang.Class


 _isAssignableFrom java.lang.Class.isAssignableFrom(Class) _isInstance java.lang.Class.isInstance(Object) _getModifiers java.lang.Class.getModifiers() _isInterface java.lang.Class.isInterface() _isArray java.lang.Class.isArray() _isPrimitive java.lang.Class.isPrimitive() _getSuperclass java.lang.Class.getSuperclass() _getComponentType java.lang.Class.getComponentType() 

Reflection


 _getClassAccessFlags sun.reflect.Reflection.getClassAccessFlags(Class) _getCallerClass sun.reflect.Reflection.getCallerClass() _getLength java.lang.reflect.Array.getLength(Object) _newArray java.lang.reflect.Array.newArray(Class, int) _invoke java.lang.reflect.Method.invoke(Object, Object...) 

In JDK 8, the sun.reflect.reflection.getCallerClass(int) method is marked as @Deprecated , instead of which is used the sun.reflect.Reflection.getCallerClass() method.

java.util.Arrays


 _copyOf java.util.Arrays.copyOf(Object[], int, Class) _copyOfRange java.util.Arrays.copyOfRange(Object[], int, int, Class) _equalsC java.util.Arrays.equals(char[], char[]) 

java.lang.String


 _compareTo java.lang.String.compareTo(String) _indexOf java.lang.String.indexOf(String) _equals java.lang.String.equals(Object) _String_String java.lang.String(String) 

java.nio.Buffer


 _checkIndex java.nio.Buffer.checkIndex(int) 

sun.nio.cs.ISO_8859_1 $ Encoder


 _encodeISOArray sun.nio.cs.ISO_8859_1.Encoder.encodeISOArray(char[], int, byte[], int, int) 

A new method, encodeISOArray been added to the sun.nio.cs.ISO_8859_1$Encoder encodeISOArray .

java.math.BigInteger


 _multiplyToLen java.math.BigInteger.multiplyToLen(int[], int, int[], int, int[]) _squareToLen java.math.BigInteger.squareToLen(int[], int, int[], int) _mulAdd java.math.BigInteger.mulAdd(int[], int[], int, int, int) _montgomeryMultiply java.math.BigInteger.montgomeryMultiply(int[], int[], int[], int, long, int[]) _montgomerySquare java.math.BigInteger.montgomerySquare(int[], int[], int, long, int[]) 

For several java.math.BigInteger methods, JDK 8 has its own intrinsics .

java.lang.ref.Reference


 _Reference_get java.lang.ref.Reference.get() 

Cryptography


 _aescrypt_encryptBlock com.sun.crypto.provider.AESCrypt.encryptBlock(byte[], in, byte[], int) _aescrypt_decryptBlock com.sun.crypto.provider.AESCrypt.decryptBlock(byte[], in, byte[], int) _cipherBlockChaining_encryptAESCrypt com.sun.crypto.provider.CipherBlockChaining.encrypt(byte[], int, int, byte[], int) _cipherBlockChaining_decryptAESCrypt com.sun.crypto.provider.CipherBlockChaining.decrypt(byte[], int, int, byte[], int) 

sun.security.provider. *


 _sha_implCompress sun.security.provider.SHA.implCompress(byte[], int) _sha2_implCompress sun.security.provider.SHA2.implCompress(byte[], int) _sha5_implCompress sun.security.provider.SHA5.implCompress(byte[], int) _digestBase_implCompressMB sun.security.provider.Digestbase.implCompressMultiBlock(byte[], int, int) 

Only in JDK 8 implCompress() intrinsiki for implCompress() . Added new sun.security.provider.DigestBase.implCompressMultiBlock() method.

java.util.zip.CRC32


 _updateCRC32 java.util.zip.CRC32.update(int, int) _updateBytesCRC32 java.util.zip.CRC32.updateBytes(int, byte[], int, int) _updateByteBufferCRC32 java.util.zip.CRC32.updateByteBuffer(int, long, int, int) 

Two intrinsics for previously existing update and updateBytes . The updateByteBuffer method appeared only in JDK 8.

sun.misc.Unsafe


 _allocateInstance sun.misc.Unsafe.allocateInstance(Class) _copyMemory sun.misc.Unsafe.copyMemory(Object, long, Object, long, long) _park sun.misc.Unsafe.park(boolean, long) _unpark sun.misc.Unsafe.unpark(Object) _loadFence sun.misc.Unsafe.loadFence() _storeFence sun.misc.Unsafe.storeFence() _fullFence sun.misc.Unsafe.fullFence() _getObject sun.misc.Unsafe.getObject(Object, long) _getBoolean sun.misc.Unsafe.getBoolean(Object, long) _getByte sun.misc.Unsafe.getByte(Object, long) _getShort sun.misc.Unsafe.getShort(Object, long) _getChar sun.misc.Unsafe.getChar(Object, long) _getInt sun.misc.Unsafe.getInt(Object, long) _getLong sun.misc.Unsafe.getLong(Object, long) _getFloat sun.misc.Unsafe.getFloat(Object, long) _getDouble sun.misc.Unsafe.getDouble(Object, long) _putObject sun.misc.Unsafe.putObject(Object, long, Object) _putBoolean sun.misc.Unsafe.putBoolean(Object, long, boolean) _putByte sun.misc.Unsafe.putByte(Object, long, byte) _putShort sun.misc.Unsafe.putShort(Object, long, short) _putChar sun.misc.Unsafe.putChar(Object, long, char) _putInt sun.misc.Unsafe.putInt(Object, long, int) _putLong sun.misc.Unsafe.putLong(Object, long, long) _putFloat sun.misc.Unsafe.putFloat(Object, long, float) _putDouble sun.misc.Unsafe.putDouble(Object, long, double) _getObjectVolatile sun.misc.Unsafe.getObjectVolatile(Object, long) _getBooleanVolatile sun.misc.Unsafe.getBooleanVolatile(Object, long) _getByteVolatile sun.misc.Unsafe.getByteVolatile(Object, long) _getShortVolatile sun.misc.Unsafe.getShortVolatile(Object, long) _getCharVolatile sun.misc.Unsafe.getCharVolatile(Object, long) _getIntVolatile sun.misc.Unsafe.getIntVolatile(Object, long) _getLongVolatile sun.misc.Unsafe.getLongVolatile(Object, long) _getFloatVolatile sun.misc.Unsafe.getFloatVolatile(Object, long) _getDoubleVolatile sun.misc.Unsafe.getDoubleVolatile(Object, long) _putObjectVolatile sun.misc.Unsafe.putObjectVolatile(Object, long, Object) _putBooleanVolatile sun.misc.Unsafe.putBooleanVolatile(Object, long, boolean) _putByteVolatile sun.misc.Unsafe.putByteVolatile(Object, long, byte) _putShortVolatile sun.misc.Unsafe.putShortVolatile(Object, long, short) _putCharVolatile sun.misc.Unsafe.putCharVolatile(Object, long, char) _putIntVolatile sun.misc.Unsafe.putIntVolatile(Object, long, int) _putLongVolatile sun.misc.Unsafe.putLongVolatile(Object, long, long) _putFloatVolatile sun.misc.Unsafe.putFloatVolatile(Object, long, float) _putDoubleVolatile sun.misc.Unsafe.putDoubleVolatile(Object, long, double) _getByte_raw sun.misc.Unsafe.getByte(long) _getShort_raw sun.misc.Unsafe.getShort(long) _getChar_raw sun.misc.Unsafe.getChar(long) _getInt_raw sun.misc.Unsafe.getInt(long) _getLong_raw sun.misc.Unsafe.getLong(long) _getFloat_raw sun.misc.Unsafe.getFloat(long) _getDouble_raw sun.misc.Unsafe.getDouble(long) _getAddress_raw sun.misc.Unsafe.getAddress(long) _putByte_raw sun.misc.Unsafe.putByte(long, byte) _putShort_raw sun.misc.Unsafe.putShort(long, short) _putChar_raw sun.misc.Unsafe.putChar(long, char) _putInt_raw sun.misc.Unsafe.putInt(long, int) _putLong_raw sun.misc.Unsafe.putLong(long, long) _putFloat_raw sun.misc.Unsafe.putFloat(long, float) _putDouble_raw sun.misc.Unsafe.putDouble(long, double) _putAddress_raw sun.misc.Unsafe.putAddress(long, long) _compareAndSwapObject sun.misc.Unsafe.compareAndSwapObject(Object, long, Object, Object) _compareAndSwapLong sun.misc.Unsafe.compareAndSwapLong(Object, long, long, long) _compareAndSwapInt sun.misc.Unsafe.compareAndSwapInt(Object, long, int, int) _putOrderedObject sun.misc.Unsafe.putOrderedObject(Object, long, Object) _putOrderedLong sun.misc.Unsafe.putOrderedLong(Object, long, long) _putOrderedInt sun.misc.Unsafe.putOrderedInt(Object, long, int) _getAndAddInt sun.misc.Unsafe.getAndAddInt(Object, long, int) _getAndAddLong sun.misc.Unsafe.getAndAddLong(Object, long, long) _getAndSetInt sun.misc.Unsafe.getAndSet(Object, long, int) _getAndSetLong sun.misc.Unsafe.getAndSet(Object, long, long) _getAndSetObject sun.misc.Unsafe.getAndSet(Object, long, Object) _prefetchRead sun.misc.Unsafe.prefetchRead(Object, long) _prefetchWrite sun.misc.Unsafe.prefetchWrite(Object, long) _prefetchReadStatic sun.misc.Unsafe.prefetchReadStatic(Object, long) _prefetchWriteStatic sun.misc.Unsafe.prefetchWriteStatic(Object, long) 

Three new methods sun.misc.Unsafe.*fence() ( memory barriers ).

lava.lang.Throwable


 _fillInStackTrace java.lang.Throwable.fillInStackTrace() 

java.lang.StringBuilder


 _StringBuilder_void java.lang.StringBuilder() _StringBuilder_int java.lang.StringBuilder(int) _StringBuilder_String java.lang.StringBuilder(String) _StringBuilder_append_char java.lang.StringBuilder.append(char) _StringBuilder_append_int java.lang.StringBuilder.append(int) _StringBuilder_append_String java.lang.StringBuilder.append(String) _StringBuilder_toString java.lang.StringBuilder.toString() 

java.lang.StringBuffer


 _StringBuffer_void java.lang.StringBuffer() _StringBuffer_int java.lang.StringBuffer(int) _StringBuffer_String java.lang.StringBuffer(String) _StringBuffer_append_char java.lang.StringBuffer.append(char) _StringBuffer_append_int java.lang.StringBuffer.append(int) _StringBuffer_append_String java.lang.StringBuffer.append(String) _StringBuffer_toString java.lang.StringBuffer.toString() 

java.lang.invoke.MethodHandle


 _invokeGeneric java.lang.invoke.MethodHandle.invoke* _invokeBasic java.lang.invoke.MethodHandle.invokeBasic* _linkToVirtual java.lang.invoke.MethodHandle.linkToVirtual* _linkToStatic java.lang.invoke.MethodHandle.linkToStatic* _linkToSpecial java.lang.invoke.MethodHandle.linkToSpecial* _linkToInterface java.lang.invoke.MethodHandle.linkToInterface* _compiledLambdaForm java.lang.invoke.MethodHandle.<compiledLambdaForm>* _profileBoolean java.lang.invoke.MethodHandleImpl.profileBoolean(boolean, int[]) 

New java.lang.invoke.MethodHandleImpl.profileBoolean() method. Developer comment on this method: Intrinsified by C2. Counters are used during parsing to calculate branch frequencies. Intrinsified by C2. Counters are used during parsing to calculate branch frequencies. .

Boxing and unboxing


 _booleanValue java.lang.Boolean.booleanValue() _byteValue java.lang.Byte.byteValue() _charValue java.lang.Character.charValue() _shortValue java.lang.Short.shortValue() _intValue java.lang.Integer.intValue() _longValue java.lang.Long.longValue() _floatValue java.lang.Float.floatValue() _doubleValue java.lang.Double.doubleValue() _Boolean_valueOf java.lang.Boolean.valueOf(boolean) _Byte_valueOf java.lang.Byte.valueOf(byte) _Character_valueOf java.lang.Character.valueOf(char) _Short_valueOf java.lang.Short.valueOf(short) _Integer_valueOf java.lang.Integer.valueOf(int) _Long_valueOf java.lang.Long.valueOf(long) _Float_valueOf java.lang.Float.valueOf(float) _Double_valueOf java.lang.Double.valueOf(double) 

Intrinsic functions in JDK 9


jdk.internal.HotSpotIntrinsicCandidate been added to JDK 9, which symbolizes that a call to the method labeled @HotSpotIntrinsicCandidate can be replaced by an intrinsic . “May” in this context means that the presence of an intrinsic function for the corresponding method does not guarantee that the JIT compiler will use the intrinsic .

I @IntrinsicCandidate add that there’s a bug with the suggestion to rename the annotation to @IntrinsicCandidate and not produce VM-specific entities, as was the case with sun.misc .

Intrinsic functions in JDK 9

java.lang.Object


 _hashCode java.lang.Object.hashCode() _getClass java.lang.Object.getClass() _clone java.lang.Object.clone() _notify java.lang.Object.notify() _notifyAll java.lang.Object.notifyAll() _Object_init java.lang.Object() 

In JDK 9 for Object , a couple of intrinsic functions have been added: _notify and _notifyAll .

java.lang.Math


 _dabs java.lang.Math.abs(double) _dsin java.lang.Math.sin(double) _dcos java.lang.Math.cos(double) _dtan java.lang.Math.tan(double) _datan2 java.lang.Math.atan2(double, double) _dsqrt java.lang.Math.sqrt(double) _dlog java.lang.Math.log(double) _dlog10 java.lang.Math.log10(double) _dpow java.lang.Math.pow(double, double) _dexp java.lang.Math.exp(double) _min java.lang.Math.min(int, int) _max java.lang.Math.max(int, int) _addExactI java.lang.Math.addExact(int, int) _addExactL java.lang.Math.addExact(long, long) _decrementExactI java.lang.Math.decrementExact(int) _decrementExactL java.lang.Math.decrementExact(long) _incrementExactI java.lang.Math.incrementExact(int) _incrementExactL java.lang.Math.incrementExact(long) _multiplyExactI java.lang.Math.multiplyExact(int, int) _multiplyExactL java.lang.Math.multiplyExact(long, long) _negateExactI java.lang.Math.negateExact(int) _negateExactL java.lang.Math.negateExact(long) _subtractExactI java.lang.Math.subtractExact(int, int) _subtractExactL java.lang.Math.subtractExact(long, long) _fmaD java.lang.Math.fma(double, double, double) _fmaF java.lang.Math.fma(float, float, float) 

In JDK 9, a couple of fma ( ~ a * b + c ) methods have been added to the java.lang.Math class and corresponding intrinsic functions for them.

Double Float


 _floatToRawIntBits java.lang.Float.floatToRawIntBits(float) _floatToIntBits java.lang.Float.floatToIntBits(float) _intBitsToFloat java.lang.Float.intBitsToFloat(int) _doubleToRawLongBits java.lang.Double.doubleToRawLongBits(double) _doubleToLongBits java.lang.Double.doubleToLongBits(double) _longBitsToDouble java.lang.Double.longBitsToDouble(long) 

Integer, Long, Character, Short


 _numberOfLeadingZeros_i java.lang.Integer.numberOfLeadingZeros(int) _numberOfLeadingZeros_l java.lang.Long.numberOfLeadingZeros(long) _numberOfTrailingZeros_i java.lang.Integer.numberOfTrailingZeros(int) _numberOfTrailingZeros_l java.lang.Long.numberOfTrailingZeros(long) _bitCount_i java.lang.Integer.bitCount(int) _bitCount_l java.lang.Long.bitCount(long) _reverseBytes_i java.lang.Integer.reverseBytes(int) _reverseBytes_l java.lang.Long.reverseBytes(long) _reverseBytes_c java.lang.Character.reverseBytes(char) _reverseBytes_s java.lang.Short.reverseBytes(short) _Integer_toString java.lang.Integer.toString(int) 

java.lang.System


 _identityHashCode java.lang.System.identityHashCode(Object) _currentTimeMillis java.lang.System.currentTimeMillis() _nanoTime java.lang.System.nanoTime() _arraycopy java.lang.System.arraycopy(Object, int, Object, int, int) 

java.lang.Thread


 _isInterrupted java.lang.Thread.isInterrupted(boolean) _currentThread java.lang.Thread.currentThread() _onSpinWait java.lang.Thread.onSpinWait() 

In JDK 9, a new onSpinWait method has onSpinWait - the implementation of busy waiting .

java.lang.Class


 _isAssignableFrom java.lang.Class.isAssignableFrom(Class) _isInstance java.lang.Class.isInstance(Object) _getModifiers java.lang.Class.getModifiers() _isInterface java.lang.Class.isInterface() _isArray java.lang.Class.isArray() _isPrimitive java.lang.Class.isPrimitive() _getSuperclass java.lang.Class.getSuperclass() _Class_cast java.lang.Class.cast(Object) 

Removed intrinsic-function for java.lang.Class.getComponentType() ( getComponentType ceased to be a native method ).
Intrinsic for cast method added to JDK 9.

Reflection


 _getClassAccessFlags sun.reflect.Reflection.getClassAccessFlags(Class) _getCallerClass sun.reflect.Reflection.getCallerClass() _getLength java.lang.reflect.Array.getLength(Object) _newArray java.lang.reflect.Array.newArray(Class, int) _invoke java.lang.reflect.Method.invoke(Object, Object...) 

java.util.Arrays


 _copyOf java.util.Arrays.copyOf(Object[], int, Class) _copyOfRange java.util.Arrays.copyOfRange(Object[], int, int, Class) _equalsC java.util.Arrays.equals(char[], char[]) _equalsB java.util.Arrays.equals(boolean[], boolean[]) 

Intrinsic for java.util.Arrays.equals(boolean[], boolean[]) added to JDK 9.

StringUTF16 and StringLatin1


 _compressStringC java.lang.StringUTF16.compress(char[], int, byte[], int, int) _compressStringB java.lang.StringUTF16.compress(byte[], int, byte[], int, int) _inflateStringC java.lang.StringLatin1.inflate(byte[], int, char[], int, int) _inflateStringB java.lang.StringLatin1.inflate(byte[], int, byte[], int, int) _toBytesStringU java.lang.StringUTF16.toBytes(char[], int, int) _getCharsStringU java.lang.StringUTF16.getChars(byte[], int, int, char[], int) _getCharStringU java.lang.StringUTF16.getChar(byte[], int) _putCharStringU java.lang.StringUTF16.putChar(byte[] int, int) _compareToL java.lang.StringLatin1.compareTo(byte[], byte[]) _compareToU java.lang.StringUTF16.compareTo(byte[], byte[]) _compareToLU java.lang.StringLatin1.compareToUTF16(byte[], byte[]) _compareToUL java.lang.StringUTF16.compareToLatin1(byte[], byte[]) _indexOfL java.lang.StringLatin1.indexOf(byte[], byte[]) _indexOfU java.lang.StringUTF16.indexOf(byte[], byte[]) _indexOfUL java.lang.StringUTF16.indexOfLatin1(byte[], byte[]) _indexOfIL java.lang.StringLatin1.indexOf(byte[], int, byte[], int, int) _indexOfIU java.lang.StringUTF16.indexOf(byte[], int, byte[], int, int) _indexOfIUL java.lang.StringUTF16.indexOfLatin1(byte[], int, byte[], int, int) _indexOfU_char java.lang.StringUTF16.indexOfChar(byte[], int, int, int) _equalsL java.lang.StringLatin1.equals(byte[], byte[]) _equalsU java.lang.StringUTF16.equals(byte[], byte[]) 

Due to changes in the String class in JDK 9 - JEP-254 , two new classes, StringUTF16 and StringLatin1 , have appeared.

jdk.internal.util.Preconditions


 _Preconditions_checkIndex jdk.internal.util.Preconditions.checkIndex(int, int, java.util.function.BiFunction) 

New class in JDK 9 with various helper methods. Intrinsic has been added for the method for checking whether the value falls within the specified boundaries.

java.lang.StringCoding


 _hasNegatives java.lang.StringCoding.hasNegatives(byte[], int, int) _encodeByteISOArray java.lang.StringCoding.encodeISOArray(byte[], int, byte[], int, int) 

Another new class in JDK 9.

java.lang.String


 _String_String java.lang.String(String) 

Removed other intrinsic-functions ( _compareTo , _equals , _indexOf ), because the implementation of the corresponding methods passed to the classes StringUTF16 and StringLatin1 . Learn more about changes to the String class in JEP-254 .

java.nio.Buffer


 _checkIndex java.nio.Buffer.checkIndex(int) 

sun.nio.cs.ISO_8859_1 $ Encoder


 _encodeISOArray sun.nio.cs.ISO_8859_1.Encoder.encodeISOArray(char[], int, byte[], int, int) 

In JDK 9, the sun.nio.cs.ISO_8859_1$Encoder class has been refactored: a new implEncodeISOArray method has been implEncodeISOArray , the old intrinsic is tied to a new method.

java.math.BigInteger


 _multiplyToLen java.math.BigInteger.multiplyToLen(int[], int, int[], int, int[]) _squareToLen java.math.BigInteger.squareToLen(int[], int, int[], int) _mulAdd java.math.BigInteger.mulAdd(int[], int[], int, int, int) _montgomeryMultiply java.math.BigInteger.montgomeryMultiply(int[], int[], int[], int, long, int[]) _montgomerySquare java.math.BigInteger.montgomerySquare(int[], int[], int, long, int[]) 

java.util.ArraysSupport


 _vectorizedMismatch java.util.ArraysSupport.vectorizedMismatch(Object, long, Object, long, int, int) 

New class in JDK 9.

java.lang.ref.Reference


 _Reference_get java.lang.ref.Reference.get() 

Cryptography


 _aescrypt_encryptBlock com.sun.crypto.provider.AESCrypt.encryptBlock(byte[], in, byte[], int) _aescrypt_decryptBlock com.sun.crypto.provider.AESCrypt.decryptBlock(byte[], in, byte[], int) _cipherBlockChaining_encryptAESCrypt com.sun.crypto.provider.CipherBlockChaining.encrypt(byte[], int, int, byte[], int) _cipherBlockChaining_decryptAESCrypt com.sun.crypto.provider.CipherBlockChaining.decrypt(byte[], int, int, byte[], int) _counterMode_AESCrypt com.sun.crypto.provider.CounterMode.implCrypt(byte[], int, int, byte[], int) _ghash_processBlocks com.sun.crypto.provider.GHASH.processBlocks(byte[], int, int, long[], long[]) 

In JDK 9, the implementation of the CounterMode.crypt() method is moved to the implCrypt method with the addition of intrinsic . Similarly, GHASH .

sun.security.provider. *


 _sha_implCompress sun.security.provider.SHA.implCompress(byte[], int) _sha2_implCompress sun.security.provider.SHA2.implCompress(byte[], int) _sha5_implCompress sun.security.provider.SHA5.implCompress(byte[], int) _digestBase_implCompressMB sun.security.provider.DigestBase.implCompressMultiBlock0(byte[], int, int) 

DigestBase Refactoring in JDK 9.

java.util.zip.CRC32 and java.util.zip.CRC32C


 _updateCRC32 java.util.zip.CRC32.update(int2_int_signature) _updateBytesCRC32 java.util.zip.CRC32.updateBytes0(updateBytes_signature) _updateByteBufferCRC32 java.util.zip.CRC32.updateByteBuffer0(updateByteBuffer_signature) _updateBytesCRC32C java.util.zip.CRC32C.updateBytes(int, byte[], int, int) _updateDirectByteBufferCRC32C java.util.zip.CRC32C.updateDirectByteBuffer(int, long, int, int) _updateBytesAdler32 java.util.zip.Adler32.updateBytes(int, byte[], int, int) _updateByteBufferAdler32 java.util.zip.Adler32.updateByteBuffer(int, long, int, int) 

More code refactored in JDK 9.
New class java.util.zip.CRC32C.

jdk.internal.misc.Unsafe


 _allocateInstance jdk.internal.misc.Unsafe.allocateInstance(Class) _allocateUninitializedArray jdk.internal.misc.Unsafe.allocateUninitializedArray0(Class, int) _copyMemory jdk.internal.misc.Unsafe.copyMemory0(Object, long, Object, long, long) _park jdk.internal.misc.Unsafe.park(boolean, long) _unpark jdk.internal.misc.Unsafe.unpark(Object) _loadFence jdk.internal.misc.Unsafe.loadFence() _storeFence jdk.internal.misc.Unsafe.storeFence() _fullFence jdk.internal.misc.Unsafe.fullFence() _getObject jdk.internal.misc.Unsafe.getObject(Object, long) _getBoolean jdk.internal.misc.Unsafe.getBoolean(Object, long) _getByte jdk.internal.misc.Unsafe.getByte(Object, long) _getShort jdk.internal.misc.Unsafe.getShort(Object, long) _getChar jdk.internal.misc.Unsafe.getChar(Object, long) _getInt jdk.internal.misc.Unsafe.getInt(Object, long) _getLong jdk.internal.misc.Unsafe.getLong(Object, long) _getFloat jdk.internal.misc.Unsafe.getFloat(Object, long) _getDouble jdk.internal.misc.Unsafe.getDouble(Object, long) _putObject jdk.internal.misc.Unsafe.putObject(Object, long, Object) _putBoolean jdk.internal.misc.Unsafe.putBoolean(Object, long, boolean) _putByte jdk.internal.misc.Unsafe.putByte(Object, long, byte) _putShort jdk.internal.misc.Unsafe.putShort(Object, long, short) _putChar jdk.internal.misc.Unsafe.putChar(Object, long, char) _putInt jdk.internal.misc.Unsafe.putInt(Object, long, int) _putLong jdk.internal.misc.Unsafe.putLong(Object, long, long) _putFloat jdk.internal.misc.Unsafe.putFloat(Object, long, float) _putDouble jdk.internal.misc.Unsafe.putDouble(Object, long, double) _getObjectVolatile jdk.internal.misc.Unsafe.getObjectVolatile(Object, long) _getBooleanVolatile jdk.internal.misc.Unsafe.getBooleanVolatile(Object, long) _getByteVolatile jdk.internal.misc.Unsafe.getByteVolatile(Object, long) _getShortVolatile jdk.internal.misc.Unsafe.getShortVolatile(Object, long) _getCharVolatile jdk.internal.misc.Unsafe.getCharVolatile(Object, long) _getIntVolatile jdk.internal.misc.Unsafe.getIntVolatile(Object, long) _getLongVolatile jdk.internal.misc.Unsafe.getLongVolatile(Object, long) _getFloatVolatile jdk.internal.misc.Unsafe.getFloatVolatile(Object, long) _getDoubleVolatile jdk.internal.misc.Unsafe.getDoubleVolatile(Object, long) _putObjectVolatile jdk.internal.misc.Unsafe.putObjectVolatile(Object, long, Object) _putBooleanVolatile jdk.internal.misc.Unsafe.putBooleanVolatile(Object, long, boolean) _putByteVolatile jdk.internal.misc.Unsafe.putByteVolatile(Object, long, byte) _putShortVolatile jdk.internal.misc.Unsafe.putShortVolatile(Object, long, short) _putCharVolatile jdk.internal.misc.Unsafe.putCharVolatile(Object, long, char) _putIntVolatile jdk.internal.misc.Unsafe.putIntVolatile(Object, long, int) _putLongVolatile jdk.internal.misc.Unsafe.putLongVolatile(Object, long, long) _putFloatVolatile jdk.internal.misc.Unsafe.putFloatVolatile(Object, long, float) _putDoubleVolatile jdk.internal.misc.Unsafe.putDoubleVolatile(Object, long, double) _getObjectOpaque jdk.internal.misc.Unsafe.getObjectOpaque(Object, long) _getBooleanOpaque jdk.internal.misc.Unsafe.getBooleanOpaque(Object, long) _getByteOpaque jdk.internal.misc.Unsafe.getByteOpaque(Object, long) _getShortOpaque jdk.internal.misc.Unsafe.getShortOpaque(Object, long) _getCharOpaque jdk.internal.misc.Unsafe.getCharOpaque(Object, long) _getIntOpaque jdk.internal.misc.Unsafe.getIntOpaque(Object, long) _getLongOpaque jdk.internal.misc.Unsafe.getLongOpaque(Object, long) _getFloatOpaque jdk.internal.misc.Unsafe.getFloatOpaque(Object, long) _getDoubleOpaque jdk.internal.misc.Unsafe.getDoubleOpaque(Object, long) _putObjectOpaque jdk.internal.misc.Unsafe.putObjectOpaque(Object, long, Object) _putBooleanOpaque jdk.internal.misc.Unsafe.putBooleanOpaque(Object, long, boolean) _putByteOpaque jdk.internal.misc.Unsafe.putByteOpaque(Object, long, byte) _putShortOpaque jdk.internal.misc.Unsafe.putShortOpaque(Object, long, short) _putCharOpaque jdk.internal.misc.Unsafe.putCharOpaque(Object, long, char) _putIntOpaque jdk.internal.misc.Unsafe.putIntOpaque(Object, long, int) _putLongOpaque jdk.internal.misc.Unsafe.putLongOpaque(Object, long, long) _putFloatOpaque jdk.internal.misc.Unsafe.putFloatOpaque(Object, long, float) _putDoubleOpaque jdk.internal.misc.Unsafe.putDoubleOpaque(Object, long, double) _getObjectAcquire jdk.internal.misc.Unsafe.getObjectAcquire(Object, long) _getBooleanAcquire jdk.internal.misc.Unsafe.getBooleanAcquire(Object, long) _getByteAcquire jdk.internal.misc.Unsafe.getByteAcquire(Object, long) _getShortAcquire jdk.internal.misc.Unsafe.getShortAcquire(Object, long) _getCharAcquire jdk.internal.misc.Unsafe.getCharAcquire(Object, long) _getIntAcquire jdk.internal.misc.Unsafe.getIntAcquire(Object, long) _getLongAcquire jdk.internal.misc.Unsafe.getLongAcquire(Object, long) _getFloatAcquire jdk.internal.misc.Unsafe.getFloatAcquire(Object, long) _getDoubleAcquire jdk.internal.misc.Unsafe.getDoubleAcquire(Object, long) _putObjectAcquire jdk.internal.misc.Unsafe.putObjectAcquire(Object, long, Object) _putBooleanAcquire jdk.internal.misc.Unsafe.putBooleanAcquire(Object, long, boolean) _putByteAcquire jdk.internal.misc.Unsafe.putByteAcquire(Object, long, byte) _putShortAcquire jdk.internal.misc.Unsafe.putShortAcquire(Object, long, short) _putCharAcquire jdk.internal.misc.Unsafe.putCharAcquire(Object, long, char) _putIntAcquire jdk.internal.misc.Unsafe.putIntAcquire(Object, long, int) _putLongAcquire jdk.internal.misc.Unsafe.putLongAcquire(Object, long, long) _putFloatAcquire jdk.internal.misc.Unsafe.putFloatAcquire(Object, long, float) _putDoubleAcquire jdk.internal.misc.Unsafe.putDoubleAcquire(Object, long, double) _getShortUnaligned jdk.internal.misc.Unsafe.getShortUnaligned(Object, long) _getCharUnaligned jdk.internal.misc.Unsafe.getCharUnaligned(Object, long) _getIntUnaligned jdk.internal.misc.Unsafe.getIntUnaligned(Object, long) _getLongUnaligned jdk.internal.misc.Unsafe.getLongUnaligned(Object, long) _putShortUnaligned jdk.internal.misc.Unsafe.putShortUnaligned(Object, long, short) _putCharUnaligned jdk.internal.misc.Unsafe.putCharUnaligned(Object, long, char) _putIntUnaligned jdk.internal.misc.Unsafe.putIntUnaligned(Object, long, int) _putLongUnaligned jdk.internal.misc.Unsafe.putLongUnaligned(Object, long, long) _compareAndSetObject jdk.internal.misc.Unsafe.compareAndSetObject(Object, long, Object, Object) _compareAndExchangeObject jdk.internal.misc.Unsafe.compareAndExchangeObject(Object, long, Object, Object) _compareAndExchangeObjectAcquire jdk.internal.misc.Unsafe.compareAndExchangeObjectAcquire(Object, long, Object, Object) _compareAndExchangeObjectRelease jdk.internal.misc.Unsafe.compareAndExchangeObjectRelease(Object, long, Object, Object) _compareAndSetLong jdk.internal.misc.Unsafe.compareAndSetLong(Object, long, long, long) _compareAndExchangeLong jdk.internal.misc.Unsafe.compareAndExchangeLong(Object, long, long, long) _compareAndExchangeLongAcquire jdk.internal.misc.Unsafe.compareAndExchangeLongAcquire(Object, long, long, long) _compareAndExchangeLongRelease jdk.internal.misc.Unsafe.compareAndExchangeLongRelease(Object, long, long, long) _compareAndSetInt jdk.internal.misc.Unsafe.compareAndSetInt(Object, long, int, int) _compareAndExchangeInt jdk.internal.misc.Unsafe.compareAndExchangeInt(Object, long, int, int) _compareAndExchangeIntAcquire jdk.internal.misc.Unsafe.compareAndExchangeIntAcquire(Object, long, int, int) _compareAndExchangeIntRelease jdk.internal.misc.Unsafe.compareAndExchangeIntRelease(Object, long, int, int) _compareAndSetByte jdk.internal.misc.Unsafe.compareAndSetByte(Object, long, byte, byte) _compareAndExchangeByte jdk.internal.misc.Unsafe.compareAndExchangeByte(Object, long, byte, byte) _compareAndExchangeByteAcquire jdk.internal.misc.Unsafe.compareAndExchangeByteAcquire(Object, long, byte, byte) _compareAndExchangeByteRelease jdk.internal.misc.Unsafe.compareAndExchangeByteRelease(Object, long, byte, byte) _compareAndSetShort jdk.internal.misc.Unsafe.compareAndSetShort(Object, long, short, short) _compareAndExchangeShort jdk.internal.misc.Unsafe.compareAndExchangeShort(Object, long, short, short) _compareAndExchangeShortAcquire jdk.internal.misc.Unsafe.compareAndExchangeShortAcquire(Object, long, short, short) _compareAndExchangeShortRelease jdk.internal.misc.Unsafe.compareAndExchangeShortRelease(Object, long, short, short) _weakCompareAndSetObjectPlain jdk.internal.misc.Unsafe.weakCompareAndSetObjectPlain(Object, long, Object, Object) _weakCompareAndSetObjectAcquire jdk.internal.misc.Unsafe.weakCompareAndSetObjectAcquire(Object, long, Object, Object) _weakCompareAndSetObjectRelease jdk.internal.misc.Unsafe.weakCompareAndSetObjectRelease(Object, long, Object, Object) _weakCompareAndSetObject jdk.internal.misc.Unsafe.weakCompareAndSetObject(Object, long, Object, Object) _weakCompareAndSetLongPlain jdk.internal.misc.Unsafe.weakCompareAndSetLongPlain(Object, long, long, long) _weakCompareAndSetLongAcquire jdk.internal.misc.Unsafe.weakCompareAndSetLongAcquire(Object, long, long, long) _weakCompareAndSetLongRelease jdk.internal.misc.Unsafe.weakCompareAndSetLongRelease(Object, long, long, long) _weakCompareAndSetLong jdk.internal.misc.Unsafe.weakCompareAndSetLong(Object, long, long, long) _weakCompareAndSetIntPlain jdk.internal.misc.Unsafe.weakCompareAndSetIntPlain(Object, long, int, int) _weakCompareAndSetIntAcquire jdk.internal.misc.Unsafe.weakCompareAndSetIntAcquire(Object, long, int, int) _weakCompareAndSetIntRelease jdk.internal.misc.Unsafe.weakCompareAndSetIntRelease(Object, long, int, int) _weakCompareAndSetInt jdk.internal.misc.Unsafe.weakCompareAndSetInt(Object, long, int, int) _weakCompareAndSetBytePlain jdk.internal.misc.Unsafe.weakCompareAndSetBytePlain(Object, long, byte, byte) _weakCompareAndSetByteAcquire jdk.internal.misc.Unsafe.weakCompareAndSetByteAcquire(Object, long, byte, byte) _weakCompareAndSetByteRelease jdk.internal.misc.Unsafe.weakCompareAndSetByteRelease(Object, long, byte, byte) _weakCompareAndSetByte jdk.internal.misc.Unsafe.weakCompareAndSetByte(Object, long, byte, byte) _weakCompareAndSetShortPlain jdk.internal.misc.Unsafe.weakCompareAndSetShortPlain(Object, long, short, short) _weakCompareAndSetShortAcquire jdk.internal.misc.Unsafe.weakCompareAndSetShortAcquire(Object, long, short, short) _weakCompareAndSetShortRelease jdk.internal.misc.Unsafe.weakCompareAndSetShortRelease(Object, long, short, short) _weakCompareAndSetShort jdk.internal.misc.Unsafe.weakCompareAndSetShort(Object, long, short, short) _getAndAddInt jdk.internal.misc.Unsafe.getAndAddInt(Object, long, int) _getAndAddLong jdk.internal.misc.Unsafe.getAndAddLong(Object, long, long) _getAndAddByte jdk.internal.misc.Unsafe.getAndAddByte(Object, long, byte) _getAndAddShort jdk.internal.misc.Unsafe.getAndAddShort(Object, long, short) _getAndSetInt jdk.internal.misc.Unsafe.getAndSetInt(Object, long, int) _getAndSetLong jdk.internal.misc.Unsafe.getAndSetLong(Object, long, int) _getAndSetByte jdk.internal.misc.Unsafe.getAndSetByte(Object, long, byte) _getAndSetShort jdk.internal.misc.Unsafe.getAndSetShort(Object, long, short) _getAndSetObject jdk.internal.misc.Unsafe.getAndSetObject(Object, long, Object) 

sun.misc.Unsafejdk.internal.misc.Unsafe , . .

lava.lang.Throwable


JDK 9 intrinsic- Throwable.fillInStackTrace() .

java.lang.StringBuilder


 _StringBuilder_void java.lang.StringBuilder() _StringBuilder_int java.lang.StringBuilder(int) _StringBuilder_String java.lang.StringBuilder(String) _StringBuilder_append_char java.lang.StringBuilder.append(char) _StringBuilder_append_int java.lang.StringBuilder.append(int) _StringBuilder_append_String java.lang.StringBuilder.append(String) _StringBuilder_toString java.lang.StringBuilder.toString() 

java.lang.StringBuffer


 _StringBuffer_void java.lang.StringBuffer() _StringBuffer_int java.lang.StringBuffer(int) _StringBuffer_String java.lang.StringBuffer(String) _StringBuffer_append_char java.lang.StringBuffer.append(char) _StringBuffer_append_int java.lang.StringBuffer.append(int) _StringBuffer_append_String java.lang.StringBuffer.append(String) _StringBuffer_toString java.lang.StringBuffer.toString() 

java.lang.invoke.MethodHandle


 _invokeGeneric java.lang.invoke.MethodHandle.invoke* _invokeBasic java.lang.invoke.MethodHandle.invokeBasic* _linkToVirtual java.lang.invoke.MethodHandle.linkToVirtual* _linkToStatic java.lang.invoke.MethodHandle.linkToStatic* _linkToSpecial java.lang.invoke.MethodHandle.linkToSpecial* _linkToInterface java.lang.invoke.MethodHandle.linkToInterface* _compiledLambdaForm java.lang.invoke.MethodHandle.<compiledLambdaForm>* _profileBoolean java.lang.invoke.MethodHandleImpl.profileBoolean(boolean, int[]) _isCompileConstant java.lang.invoke.MethodHandleImpl.isCompileConstant(Object) 

java.lang.invoke.MethodHandleImpl.isCompileConstant() .

Boxing Unboxing


 _booleanValue java.lang.Boolean.booleanValue() _byteValue java.lang.Byte.byteValue() _charValue java.lang.Character.charValue() _shortValue java.lang.Short.shortValue() _intValue java.lang.Integer.intValue() _longValue java.lang.Long.longValue() _floatValue java.lang.Float.floatValue() _doubleValue java.lang.Double.doubleValue() _Boolean_valueOf java.lang.Boolean.valueOf(boolean) _Byte_valueOf java.lang.Byte.valueOf(byte) _Character_valueOf java.lang.Character.valueOf(char) _Short_valueOf java.lang.Short.valueOf(short) _Integer_valueOf java.lang.Integer.valueOf(int) _Long_valueOf java.lang.Long.valueOf(long) _Float_valueOf java.lang.Float.valueOf(float) _Double_valueOf java.lang.Double.valueOf(double) 

java.util.stream.StreamsRangeIntSpliterator


 _forEachRemaining java_util_stream_StreamsRangeIntSpliterator.forEachRemaining(java.util.function.IntConsumer) 

JDK 9 StreamRangeIntSpliterator.forEachRemaining .

Intrinsic- JDK 10


JDK 10 JDK 9.

Intrinsic- JDK 10

java.lang.Object


 _hashCode java.lang.Object.hashCode() _getClass java.lang.Object.getClass() _clone java.lang.Object.clone() _notify java.lang.Object.notify() _notifyAll java.lang.Object.notifyAll() _Object_init java.lang.Object() 

java.lang.Math


 _dabs java.lang.Math.abs(double) _dsin java.lang.Math.sin(double) _dcos java.lang.Math.cos(double) _dtan java.lang.Math.tan(double) _datan2 java.lang.Math.atan2(double, double) _dsqrt java.lang.Math.sqrt(double) _dlog java.lang.Math.log(double) _dlog10 java.lang.Math.log10(double) _dpow java.lang.Math.pow(double, double) _dexp java.lang.Math.exp(double) _min java.lang.Math.min(int, int) _max java.lang.Math.max(int, int) _addExactI java.lang.Math.addExact(int, int) _addExactL java.lang.Math.addExact(long, long) _decrementExactI java.lang.Math.decrementExact(int) _decrementExactL java.lang.Math.decrementExact(long) _incrementExactI java.lang.Math.incrementExact(int) _incrementExactL java.lang.Math.incrementExact(long) _multiplyExactI java.lang.Math.multiplyExact(int, int) _multiplyExactL java.lang.Math.multiplyExact(long, long) _negateExactI java.lang.Math.negateExact(int) _negateExactL java.lang.Math.negateExact(long) _subtractExactI java.lang.Math.subtractExact(int, int) _subtractExactL java.lang.Math.subtractExact(long, long) _fmaD java.lang.Math.fma(double, double, double) _fmaF java.lang.Math.fma(float, float, float) 

Double, Float


 _floatToRawIntBits java.lang.Float.floatToRawIntBits(float) _floatToIntBits java.lang.Float.floatToIntBits(float) _intBitsToFloat java.lang.Float.intBitsToFloat(int) _doubleToRawLongBits java.lang.Double.doubleToRawLongBits(double) _doubleToLongBits java.lang.Double.doubleToLongBits(double) _longBitsToDouble java.lang.Double.longBitsToDouble(long) 

Integer, Long, Character, Short


 _numberOfLeadingZeros_i java.lang.Integer.numberOfLeadingZeros(int) _numberOfLeadingZeros_l java.lang.Long.numberOfLeadingZeros(long) _numberOfTrailingZeros_i java.lang.Integer.numberOfTrailingZeros(int) _numberOfTrailingZeros_l java.lang.Long.numberOfTrailingZeros(long) _bitCount_i java.lang.Integer.bitCount(int) _bitCount_l java.lang.Long.bitCount(long) _reverseBytes_i java.lang.Integer.reverseBytes(int) _reverseBytes_l java.lang.Long.reverseBytes(long) _reverseBytes_c java.lang.Character.reverseBytes(char) _reverseBytes_s java.lang.Short.reverseBytes(short) _Integer_toString java.lang.Integer.toString(int) 

java.lang.System


 _identityHashCode java.lang.System.identityHashCode(Object) _currentTimeMillis java.lang.System.currentTimeMillis() _nanoTime java.lang.System.nanoTime() _arraycopy java.lang.System.arraycopy(Object, int, Object, int, int) 

java.lang.Thread


 _isInterrupted java.lang.Thread.isInterrupted(boolean) _currentThread java.lang.Thread.currentThread() _onSpinWait java.lang.Thread.onSpinWait() 

java.lang.Class


 _isAssignableFrom java.lang.Class.isAssignableFrom(Class) _isInstance java.lang.Class.isInstance(Object) _getModifiers java.lang.Class.getModifiers() _isInterface java.lang.Class.isInterface() _isArray java.lang.Class.isArray() _isPrimitive java.lang.Class.isPrimitive() _getSuperclass java.lang.Class.getSuperclass() _Class_cast java.lang.Class.cast(Object) 

Reflection


 _getClassAccessFlags sun.reflect.Reflection.getClassAccessFlags(Class) _getCallerClass sun.reflect.Reflection.getCallerClass() _getLength java.lang.reflect.Array.getLength(Object) _newArray java.lang.reflect.Array.newArray(Class, int) _invoke java.lang.reflect.Method.invoke(Object, Object...) 

java.util.Arrays


 _copyOf java.util.Arrays.copyOf(Object[], int, Class) _copyOfRange java.util.Arrays.copyOfRange(Object[], int, int, Class) _equalsC java.util.Arrays.equals(char[], char[]) _equalsB java.util.Arrays.equals(boolean[], boolean[]) 

StringUTF16 StringLatin1


 _compressStringC java.lang.StringUTF16.compress(char[], int, byte[], int, int) _compressStringB java.lang.StringUTF16.compress(byte[], int, byte[], int, int) _inflateStringC java.lang.StringLatin1.inflate(byte[], int, char[], int, int) _inflateStringB java.lang.StringLatin1.inflate(byte[], int, byte[], int, int) _toBytesStringU java.lang.StringUTF16.toBytes(char[], int, int) _getCharsStringU java.lang.StringUTF16.getChars(byte[], int, int, char[], int) _getCharStringU java.lang.StringUTF16.getChar(byte[], int) _putCharStringU java.lang.StringUTF16.putChar(byte[] int, int) _compareToL java.lang.StringLatin1.compareTo(byte[], byte[]) _compareToU java.lang.StringUTF16.compareTo(byte[], byte[]) _compareToLU java.lang.StringLatin1.compareToUTF16(byte[], byte[]) _compareToUL java.lang.StringUTF16.compareToLatin1(byte[], byte[]) _indexOfL java.lang.StringLatin1.indexOf(byte[], byte[]) _indexOfU java.lang.StringUTF16.indexOf(byte[], byte[]) _indexOfUL java.lang.StringUTF16.indexOfLatin1(byte[], byte[]) _indexOfIL java.lang.StringLatin1.indexOf(byte[], int, byte[], int, int) _indexOfIU java.lang.StringUTF16.indexOf(byte[], int, byte[], int, int) _indexOfIUL java.lang.StringUTF16.indexOfLatin1(byte[], int, byte[], int, int) _indexOfU_char java.lang.StringUTF16.indexOfChar(byte[], int, int, int) _equalsL java.lang.StringLatin1.equals(byte[], byte[]) _equalsU java.lang.StringUTF16.equals(byte[], byte[]) 

jdk.internal.util.Preconditions


 _Preconditions_checkIndex jdk.internal.util.Preconditions.checkIndex(int, int, java.util.function.BiFunction) 

java.lang.StringCoding


 _hasNegatives java.lang.StringCoding.hasNegatives(byte[], int, int) _encodeByteISOArray java.lang.StringCoding.encodeISOArray(byte[], int, byte[], int, int) 

java.lang.String


 _String_String java.lang.String(String) 

java.nio.Buffer


 _checkIndex java.nio.Buffer.checkIndex(int) 

sun.nio.cs.ISO_8859_1$Encoder


 _encodeISOArray sun.nio.cs.ISO_8859_1.Encoder.encodeISOArray(char[], int, byte[], int, int) 

java.math.BigInteger


 _multiplyToLen java.math.BigInteger.multiplyToLen(int[], int, int[], int, int[]) _squareToLen java.math.BigInteger.squareToLen(int[], int, int[], int) _mulAdd java.math.BigInteger.mulAdd(int[], int[], int, int, int) _montgomeryMultiply java.math.BigInteger.montgomeryMultiply(int[], int[], int[], int, long, int[]) _montgomerySquare java.math.BigInteger.montgomerySquare(int[], int[], int, long, int[]) 

java.util.ArraysSupport


 _vectorizedMismatch java.util.ArraysSupport.vectorizedMismatch(Object, long, Object, long, int, int) 

java.lang.ref.Reference


 _Reference_get java.lang.ref.Reference.get() 

Cryptography


 _aescrypt_encryptBlock com.sun.crypto.provider.AESCrypt.encryptBlock(byte[], in, byte[], int) _aescrypt_decryptBlock com.sun.crypto.provider.AESCrypt.decryptBlock(byte[], in, byte[], int) _cipherBlockChaining_encryptAESCrypt com.sun.crypto.provider.CipherBlockChaining.encrypt(byte[], int, int, byte[], int) _cipherBlockChaining_decryptAESCrypt com.sun.crypto.provider.CipherBlockChaining.decrypt(byte[], int, int, byte[], int) _counterMode_AESCrypt com.sun.crypto.provider.CounterMode.implCrypt(byte[], int, int, byte[], int) _ghash_processBlocks com.sun.crypto.provider.GHASH.processBlocks(byte[], int, int, long[], long[]) 

sun.security.provider.*


 _sha_implCompress sun.security.provider.SHA.implCompress(byte[], int) _sha2_implCompress sun.security.provider.SHA2.implCompress(byte[], int) _sha5_implCompress sun.security.provider.SHA5.implCompress(byte[], int) _digestBase_implCompressMB sun.security.provider.DigestBase.implCompressMultiBlock0(byte[], int, int) 

java.util.zip.CRC32 java.util.zip.CRC32C


 _updateCRC32 java.util.zip.CRC32.update(int2_int_signature) _updateBytesCRC32 java.util.zip.CRC32.updateBytes0(updateBytes_signature) _updateByteBufferCRC32 java.util.zip.CRC32.updateByteBuffer0(updateByteBuffer_signature) _updateBytesCRC32C java.util.zip.CRC32C.updateBytes(int, byte[], int, int) _updateDirectByteBufferCRC32C java.util.zip.CRC32C.updateDirectByteBuffer(int, long, int, int) _updateBytesAdler32 java.util.zip.Adler32.updateBytes(int, byte[], int, int) _updateByteBufferAdler32 java.util.zip.Adler32.updateByteBuffer(int, long, int, int) 

jdk.internal.misc.Unsafe


 _allocateInstance jdk.internal.misc.Unsafe.allocateInstance(Class) _allocateUninitializedArray jdk.internal.misc.Unsafe.allocateUninitializedArray0(Class, int) _copyMemory jdk.internal.misc.Unsafe.copyMemory0(Object, long, Object, long, long) _park jdk.internal.misc.Unsafe.park(boolean, long) _unpark jdk.internal.misc.Unsafe.unpark(Object) _loadFence jdk.internal.misc.Unsafe.loadFence() _storeFence jdk.internal.misc.Unsafe.storeFence() _fullFence jdk.internal.misc.Unsafe.fullFence() _getObject jdk.internal.misc.Unsafe.getObject(Object, long) _getBoolean jdk.internal.misc.Unsafe.getBoolean(Object, long) _getByte jdk.internal.misc.Unsafe.getByte(Object, long) _getShort jdk.internal.misc.Unsafe.getShort(Object, long) _getChar jdk.internal.misc.Unsafe.getChar(Object, long) _getInt jdk.internal.misc.Unsafe.getInt(Object, long) _getLong jdk.internal.misc.Unsafe.getLong(Object, long) _getFloat jdk.internal.misc.Unsafe.getFloat(Object, long) _getDouble jdk.internal.misc.Unsafe.getDouble(Object, long) _putObject jdk.internal.misc.Unsafe.putObject(Object, long, Object) _putBoolean jdk.internal.misc.Unsafe.putBoolean(Object, long, boolean) _putByte jdk.internal.misc.Unsafe.putByte(Object, long, byte) _putShort jdk.internal.misc.Unsafe.putShort(Object, long, short) _putChar jdk.internal.misc.Unsafe.putChar(Object, long, char) _putInt jdk.internal.misc.Unsafe.putInt(Object, long, int) _putLong jdk.internal.misc.Unsafe.putLong(Object, long, long) _putFloat jdk.internal.misc.Unsafe.putFloat(Object, long, float) _putDouble jdk.internal.misc.Unsafe.putDouble(Object, long, double) _getObjectVolatile jdk.internal.misc.Unsafe.getObjectVolatile(Object, long) _getBooleanVolatile jdk.internal.misc.Unsafe.getBooleanVolatile(Object, long) _getByteVolatile jdk.internal.misc.Unsafe.getByteVolatile(Object, long) _getShortVolatile jdk.internal.misc.Unsafe.getShortVolatile(Object, long) _getCharVolatile jdk.internal.misc.Unsafe.getCharVolatile(Object, long) _getIntVolatile jdk.internal.misc.Unsafe.getIntVolatile(Object, long) _getLongVolatile jdk.internal.misc.Unsafe.getLongVolatile(Object, long) _getFloatVolatile jdk.internal.misc.Unsafe.getFloatVolatile(Object, long) _getDoubleVolatile jdk.internal.misc.Unsafe.getDoubleVolatile(Object, long) _putObjectVolatile jdk.internal.misc.Unsafe.putObjectVolatile(Object, long, Object) _putBooleanVolatile jdk.internal.misc.Unsafe.putBooleanVolatile(Object, long, boolean) _putByteVolatile jdk.internal.misc.Unsafe.putByteVolatile(Object, long, byte) _putShortVolatile jdk.internal.misc.Unsafe.putShortVolatile(Object, long, short) _putCharVolatile jdk.internal.misc.Unsafe.putCharVolatile(Object, long, char) _putIntVolatile jdk.internal.misc.Unsafe.putIntVolatile(Object, long, int) _putLongVolatile jdk.internal.misc.Unsafe.putLongVolatile(Object, long, long) _putFloatVolatile jdk.internal.misc.Unsafe.putFloatVolatile(Object, long, float) _putDoubleVolatile jdk.internal.misc.Unsafe.putDoubleVolatile(Object, long, double) _getObjectOpaque jdk.internal.misc.Unsafe.getObjectOpaque(Object, long) _getBooleanOpaque jdk.internal.misc.Unsafe.getBooleanOpaque(Object, long) _getByteOpaque jdk.internal.misc.Unsafe.getByteOpaque(Object, long) _getShortOpaque jdk.internal.misc.Unsafe.getShortOpaque(Object, long) _getCharOpaque jdk.internal.misc.Unsafe.getCharOpaque(Object, long) _getIntOpaque jdk.internal.misc.Unsafe.getIntOpaque(Object, long) _getLongOpaque jdk.internal.misc.Unsafe.getLongOpaque(Object, long) _getFloatOpaque jdk.internal.misc.Unsafe.getFloatOpaque(Object, long) _getDoubleOpaque jdk.internal.misc.Unsafe.getDoubleOpaque(Object, long) _putObjectOpaque jdk.internal.misc.Unsafe.putObjectOpaque(Object, long, Object) _putBooleanOpaque jdk.internal.misc.Unsafe.putBooleanOpaque(Object, long, boolean) _putByteOpaque jdk.internal.misc.Unsafe.putByteOpaque(Object, long, byte) _putShortOpaque jdk.internal.misc.Unsafe.putShortOpaque(Object, long, short) _putCharOpaque jdk.internal.misc.Unsafe.putCharOpaque(Object, long, char) _putIntOpaque jdk.internal.misc.Unsafe.putIntOpaque(Object, long, int) _putLongOpaque jdk.internal.misc.Unsafe.putLongOpaque(Object, long, long) _putFloatOpaque jdk.internal.misc.Unsafe.putFloatOpaque(Object, long, float) _putDoubleOpaque jdk.internal.misc.Unsafe.putDoubleOpaque(Object, long, double) _getObjectAcquire jdk.internal.misc.Unsafe.getObjectAcquire(Object, long) _getBooleanAcquire jdk.internal.misc.Unsafe.getBooleanAcquire(Object, long) _getByteAcquire jdk.internal.misc.Unsafe.getByteAcquire(Object, long) _getShortAcquire jdk.internal.misc.Unsafe.getShortAcquire(Object, long) _getCharAcquire jdk.internal.misc.Unsafe.getCharAcquire(Object, long) _getIntAcquire jdk.internal.misc.Unsafe.getIntAcquire(Object, long) _getLongAcquire jdk.internal.misc.Unsafe.getLongAcquire(Object, long) _getFloatAcquire jdk.internal.misc.Unsafe.getFloatAcquire(Object, long) _getDoubleAcquire jdk.internal.misc.Unsafe.getDoubleAcquire(Object, long) _putObjectAcquire jdk.internal.misc.Unsafe.putObjectAcquire(Object, long, Object) _putBooleanAcquire jdk.internal.misc.Unsafe.putBooleanAcquire(Object, long, boolean) _putByteAcquire jdk.internal.misc.Unsafe.putByteAcquire(Object, long, byte) _putShortAcquire jdk.internal.misc.Unsafe.putShortAcquire(Object, long, short) _putCharAcquire jdk.internal.misc.Unsafe.putCharAcquire(Object, long, char) _putIntAcquire jdk.internal.misc.Unsafe.putIntAcquire(Object, long, int) _putLongAcquire jdk.internal.misc.Unsafe.putLongAcquire(Object, long, long) _putFloatAcquire jdk.internal.misc.Unsafe.putFloatAcquire(Object, long, float) _putDoubleAcquire jdk.internal.misc.Unsafe.putDoubleAcquire(Object, long, double) _getShortUnaligned jdk.internal.misc.Unsafe.getShortUnaligned(Object, long) _getCharUnaligned jdk.internal.misc.Unsafe.getCharUnaligned(Object, long) _getIntUnaligned jdk.internal.misc.Unsafe.getIntUnaligned(Object, long) _getLongUnaligned jdk.internal.misc.Unsafe.getLongUnaligned(Object, long) _putShortUnaligned jdk.internal.misc.Unsafe.putShortUnaligned(Object, long, short) _putCharUnaligned jdk.internal.misc.Unsafe.putCharUnaligned(Object, long, char) _putIntUnaligned jdk.internal.misc.Unsafe.putIntUnaligned(Object, long, int) _putLongUnaligned jdk.internal.misc.Unsafe.putLongUnaligned(Object, long, long) _compareAndSetObject jdk.internal.misc.Unsafe.compareAndSetObject(Object, long, Object, Object) _compareAndExchangeObject jdk.internal.misc.Unsafe.compareAndExchangeObject(Object, long, Object, Object) _compareAndExchangeObjectAcquire jdk.internal.misc.Unsafe.compareAndExchangeObjectAcquire(Object, long, Object, Object) _compareAndExchangeObjectRelease jdk.internal.misc.Unsafe.compareAndExchangeObjectRelease(Object, long, Object, Object) _compareAndSetLong jdk.internal.misc.Unsafe.compareAndSetLong(Object, long, long, long) _compareAndExchangeLong jdk.internal.misc.Unsafe.compareAndExchangeLong(Object, long, long, long) _compareAndExchangeLongAcquire jdk.internal.misc.Unsafe.compareAndExchangeLongAcquire(Object, long, long, long) _compareAndExchangeLongRelease jdk.internal.misc.Unsafe.compareAndExchangeLongRelease(Object, long, long, long) _compareAndSetInt jdk.internal.misc.Unsafe.compareAndSetInt(Object, long, int, int) _compareAndExchangeInt jdk.internal.misc.Unsafe.compareAndExchangeInt(Object, long, int, int) _compareAndExchangeIntAcquire jdk.internal.misc.Unsafe.compareAndExchangeIntAcquire(Object, long, int, int) _compareAndExchangeIntRelease jdk.internal.misc.Unsafe.compareAndExchangeIntRelease(Object, long, int, int) _compareAndSetByte jdk.internal.misc.Unsafe.compareAndSetByte(Object, long, byte, byte) _compareAndExchangeByte jdk.internal.misc.Unsafe.compareAndExchangeByte(Object, long, byte, byte) _compareAndExchangeByteAcquire jdk.internal.misc.Unsafe.compareAndExchangeByteAcquire(Object, long, byte, byte) _compareAndExchangeByteRelease jdk.internal.misc.Unsafe.compareAndExchangeByteRelease(Object, long, byte, byte) _compareAndSetShort jdk.internal.misc.Unsafe.compareAndSetShort(Object, long, short, short) _compareAndExchangeShort jdk.internal.misc.Unsafe.compareAndExchangeShort(Object, long, short, short) _compareAndExchangeShortAcquire jdk.internal.misc.Unsafe.compareAndExchangeShortAcquire(Object, long, short, short) _compareAndExchangeShortRelease jdk.internal.misc.Unsafe.compareAndExchangeShortRelease(Object, long, short, short) _weakCompareAndSetObjectPlain jdk.internal.misc.Unsafe.weakCompareAndSetObjectPlain(Object, long, Object, Object) _weakCompareAndSetObjectAcquire jdk.internal.misc.Unsafe.weakCompareAndSetObjectAcquire(Object, long, Object, Object) _weakCompareAndSetObjectRelease jdk.internal.misc.Unsafe.weakCompareAndSetObjectRelease(Object, long, Object, Object) _weakCompareAndSetObject jdk.internal.misc.Unsafe.weakCompareAndSetObject(Object, long, Object, Object) _weakCompareAndSetLongPlain jdk.internal.misc.Unsafe.weakCompareAndSetLongPlain(Object, long, long, long) _weakCompareAndSetLongAcquire jdk.internal.misc.Unsafe.weakCompareAndSetLongAcquire(Object, long, long, long) _weakCompareAndSetLongRelease jdk.internal.misc.Unsafe.weakCompareAndSetLongRelease(Object, long, long, long) _weakCompareAndSetLong jdk.internal.misc.Unsafe.weakCompareAndSetLong(Object, long, long, long) _weakCompareAndSetIntPlain jdk.internal.misc.Unsafe.weakCompareAndSetIntPlain(Object, long, int, int) _weakCompareAndSetIntAcquire jdk.internal.misc.Unsafe.weakCompareAndSetIntAcquire(Object, long, int, int) _weakCompareAndSetIntRelease jdk.internal.misc.Unsafe.weakCompareAndSetIntRelease(Object, long, int, int) _weakCompareAndSetInt jdk.internal.misc.Unsafe.weakCompareAndSetInt(Object, long, int, int) _weakCompareAndSetBytePlain jdk.internal.misc.Unsafe.weakCompareAndSetBytePlain(Object, long, byte, byte) _weakCompareAndSetByteAcquire jdk.internal.misc.Unsafe.weakCompareAndSetByteAcquire(Object, long, byte, byte) _weakCompareAndSetByteRelease jdk.internal.misc.Unsafe.weakCompareAndSetByteRelease(Object, long, byte, byte) _weakCompareAndSetByte jdk.internal.misc.Unsafe.weakCompareAndSetByte(Object, long, byte, byte) _weakCompareAndSetShortPlain jdk.internal.misc.Unsafe.weakCompareAndSetShortPlain(Object, long, short, short) _weakCompareAndSetShortAcquire jdk.internal.misc.Unsafe.weakCompareAndSetShortAcquire(Object, long, short, short) _weakCompareAndSetShortRelease jdk.internal.misc.Unsafe.weakCompareAndSetShortRelease(Object, long, short, short) _weakCompareAndSetShort jdk.internal.misc.Unsafe.weakCompareAndSetShort(Object, long, short, short) _getAndAddInt jdk.internal.misc.Unsafe.getAndAddInt(Object, long, int) _getAndAddLong jdk.internal.misc.Unsafe.getAndAddLong(Object, long, long) _getAndAddByte jdk.internal.misc.Unsafe.getAndAddByte(Object, long, byte) _getAndAddShort jdk.internal.misc.Unsafe.getAndAddShort(Object, long, short) _getAndSetInt jdk.internal.misc.Unsafe.getAndSetInt(Object, long, int) _getAndSetLong jdk.internal.misc.Unsafe.getAndSetLong(Object, long, int) _getAndSetByte jdk.internal.misc.Unsafe.getAndSetByte(Object, long, byte) _getAndSetShort jdk.internal.misc.Unsafe.getAndSetShort(Object, long, short) _getAndSetObject jdk.internal.misc.Unsafe.getAndSetObject(Object, long, Object) 

java.lang.StringBuilder


 _StringBuilder_void java.lang.StringBuilder() _StringBuilder_int java.lang.StringBuilder(int) _StringBuilder_String java.lang.StringBuilder(String) _StringBuilder_append_char java.lang.StringBuilder.append(char) _StringBuilder_append_int java.lang.StringBuilder.append(int) _StringBuilder_append_String java.lang.StringBuilder.append(String) _StringBuilder_toString java.lang.StringBuilder.toString() 

java.lang.StringBuffer


 _StringBuffer_void java.lang.StringBuffer() _StringBuffer_int java.lang.StringBuffer(int) _StringBuffer_String java.lang.StringBuffer(String) _StringBuffer_append_char java.lang.StringBuffer.append(char) _StringBuffer_append_int java.lang.StringBuffer.append(int) _StringBuffer_append_String java.lang.StringBuffer.append(String) _StringBuffer_toString java.lang.StringBuffer.toString() 

java.lang.invoke.MethodHandle


 _invokeGeneric java.lang.invoke.MethodHandle.invoke* _invokeBasic java.lang.invoke.MethodHandle.invokeBasic* _linkToVirtual java.lang.invoke.MethodHandle.linkToVirtual* _linkToStatic java.lang.invoke.MethodHandle.linkToStatic* _linkToSpecial java.lang.invoke.MethodHandle.linkToSpecial* _linkToInterface java.lang.invoke.MethodHandle.linkToInterface* _compiledLambdaForm java.lang.invoke.MethodHandle.<compiledLambdaForm>* _profileBoolean java.lang.invoke.MethodHandleImpl.profileBoolean(boolean, int[]) _isCompileConstant java.lang.invoke.MethodHandleImpl.isCompileConstant(Object) 

Boxing Unboxing


 _booleanValue java.lang.Boolean.booleanValue() _byteValue java.lang.Byte.byteValue() _charValue java.lang.Character.charValue() _shortValue java.lang.Short.shortValue() _intValue java.lang.Integer.intValue() _longValue java.lang.Long.longValue() _floatValue java.lang.Float.floatValue() _doubleValue java.lang.Double.doubleValue() _Boolean_valueOf java.lang.Boolean.valueOf(boolean) _Byte_valueOf java.lang.Byte.valueOf(byte) _Character_valueOf java.lang.Character.valueOf(char) _Short_valueOf java.lang.Short.valueOf(short) _Integer_valueOf java.lang.Integer.valueOf(int) _Long_valueOf java.lang.Long.valueOf(long) _Float_valueOf java.lang.Float.valueOf(float) _Double_valueOf java.lang.Double.valueOf(double) 

java.util.stream.StreamsRangeIntSpliterator


 _forEachRemaining java_util_stream_StreamsRangeIntSpliterator.forEachRemaining(java.util.function.IntConsumer) 

intrinsic-


Java- : -, ( null, ), RuntimeException, -, intrinsic- platform-specific .

JNI- , ( native ) Java-, native-.


, , -XX:+PrintIntrinsics :

 -XX:+UnlockDiagnosticVMOptions -XX:+PrintIntrinsics 

( intrinsic- ) JIT-, -Xint (JVM ).

intrinsic- , -XX:DisableIntrinsic :

 -XX:+UnlockDiagnosticVMOptions -XX:DisableIntrinsic=< >[,< >] 

Notes


apangin :
, , , , JIT . Java , vmSymbols.hpp .

, Method.invoke , security check . Throwable.fillInStackTrace Escape Analysys, Unsafe.park/unpark .

JDK 9 Throwable.fillInStackTrace .

Source: https://habr.com/ru/post/352086/


All Articles