Package sun.misc
Class Unsafe
- java.lang.Object
-
- sun.misc.Unsafe
-
public class Unsafe extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static int
ADDRESS_SIZE
static int
ARRAY_BOOLEAN_BASE_OFFSET
static int
ARRAY_BOOLEAN_INDEX_SCALE
static int
ARRAY_BYTE_BASE_OFFSET
static int
ARRAY_BYTE_INDEX_SCALE
static int
ARRAY_CHAR_BASE_OFFSET
static int
ARRAY_CHAR_INDEX_SCALE
static int
ARRAY_DOUBLE_BASE_OFFSET
static int
ARRAY_DOUBLE_INDEX_SCALE
static int
ARRAY_FLOAT_BASE_OFFSET
static int
ARRAY_FLOAT_INDEX_SCALE
static int
ARRAY_INT_BASE_OFFSET
static int
ARRAY_INT_INDEX_SCALE
static int
ARRAY_LONG_BASE_OFFSET
static int
ARRAY_LONG_INDEX_SCALE
static int
ARRAY_OBJECT_BASE_OFFSET
static int
ARRAY_OBJECT_INDEX_SCALE
static int
ARRAY_SHORT_BASE_OFFSET
static int
ARRAY_SHORT_INDEX_SCALE
static int
INVALID_FIELD_OFFSET
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description int
addressSize()
java.lang.Object
allocateInstance(java.lang.Class<?> cls)
long
allocateMemory(long bytes)
int
arrayBaseOffset(java.lang.Class<?> arrayClass)
int
arrayIndexScale(java.lang.Class<?> arrayClass)
boolean
compareAndSwapInt(java.lang.Object o, long offset, int expected, int x)
boolean
compareAndSwapLong(java.lang.Object o, long offset, long expected, long x)
boolean
compareAndSwapObject(java.lang.Object o, long offset, java.lang.Object expected, java.lang.Object x)
void
copyMemory(long srcAddress, long destAddress, long bytes)
void
copyMemory(java.lang.Object srcBase, long srcOffset, java.lang.Object destBase, long destOffset, long bytes)
java.lang.Class<?>
defineAnonymousClass(java.lang.Class<?> hostClass, byte[] data, java.lang.Object[] cpPatches)
java.lang.Class<?>
defineClass(java.lang.String name, byte[] b, int off, int len, java.lang.ClassLoader loader, java.security.ProtectionDomain protectionDomain)
Deprecated.void
ensureClassInitialized(java.lang.Class<?> c)
void
freeMemory(long address)
void
fullFence()
long
getAddress(long address)
int
getAndAddInt(java.lang.Object o, long offset, int delta)
long
getAndAddLong(java.lang.Object o, long offset, long delta)
int
getAndSetInt(java.lang.Object o, long offset, int newValue)
long
getAndSetLong(java.lang.Object o, long offset, long newValue)
java.lang.Object
getAndSetObject(java.lang.Object o, long offset, java.lang.Object newValue)
boolean
getBoolean(java.lang.Object o, long offset)
boolean
getBooleanVolatile(java.lang.Object o, long offset)
byte
getByte(long address)
byte
getByte(java.lang.Object o, long offset)
byte
getByteVolatile(java.lang.Object o, long offset)
char
getChar(long address)
char
getChar(java.lang.Object o, long offset)
char
getCharVolatile(java.lang.Object o, long offset)
double
getDouble(long address)
double
getDouble(java.lang.Object o, long offset)
double
getDoubleVolatile(java.lang.Object o, long offset)
float
getFloat(long address)
float
getFloat(java.lang.Object o, long offset)
float
getFloatVolatile(java.lang.Object o, long offset)
int
getInt(long address)
int
getInt(java.lang.Object o, long offset)
int
getIntVolatile(java.lang.Object o, long offset)
int
getLoadAverage(double[] loadavg, int nelems)
long
getLong(long address)
long
getLong(java.lang.Object o, long offset)
long
getLongVolatile(java.lang.Object o, long offset)
java.lang.Object
getObject(java.lang.Object o, long offset)
java.lang.Object
getObjectVolatile(java.lang.Object o, long offset)
short
getShort(long address)
short
getShort(java.lang.Object o, long offset)
short
getShortVolatile(java.lang.Object o, long offset)
static Unsafe
getUnsafe()
void
invokeCleaner(java.nio.ByteBuffer directBuffer)
void
loadFence()
long
objectFieldOffset(java.lang.reflect.Field f)
int
pageSize()
void
park(boolean isAbsolute, long time)
void
putAddress(long address, long x)
void
putBoolean(java.lang.Object o, long offset, boolean x)
void
putBooleanVolatile(java.lang.Object o, long offset, boolean x)
void
putByte(long address, byte x)
void
putByte(java.lang.Object o, long offset, byte x)
void
putByteVolatile(java.lang.Object o, long offset, byte x)
void
putChar(long address, char x)
void
putChar(java.lang.Object o, long offset, char x)
void
putCharVolatile(java.lang.Object o, long offset, char x)
void
putDouble(long address, double x)
void
putDouble(java.lang.Object o, long offset, double x)
void
putDoubleVolatile(java.lang.Object o, long offset, double x)
void
putFloat(long address, float x)
void
putFloat(java.lang.Object o, long offset, float x)
void
putFloatVolatile(java.lang.Object o, long offset, float x)
void
putInt(long address, int x)
void
putInt(java.lang.Object o, long offset, int x)
void
putIntVolatile(java.lang.Object o, long offset, int x)
void
putLong(long address, long x)
void
putLong(java.lang.Object o, long offset, long x)
void
putLongVolatile(java.lang.Object o, long offset, long x)
void
putObject(java.lang.Object o, long offset, java.lang.Object x)
void
putObjectVolatile(java.lang.Object o, long offset, java.lang.Object x)
void
putOrderedInt(java.lang.Object o, long offset, int x)
void
putOrderedLong(java.lang.Object o, long offset, long x)
void
putOrderedObject(java.lang.Object o, long offset, java.lang.Object x)
void
putShort(long address, short x)
void
putShort(java.lang.Object o, long offset, short x)
void
putShortVolatile(java.lang.Object o, long offset, short x)
long
reallocateMemory(long address, long bytes)
void
setMemory(long address, long bytes, byte value)
void
setMemory(java.lang.Object o, long offset, long bytes, byte value)
boolean
shouldBeInitialized(java.lang.Class<?> c)
java.lang.Object
staticFieldBase(java.lang.reflect.Field f)
long
staticFieldOffset(java.lang.reflect.Field f)
void
storeFence()
void
throwException(java.lang.Throwable ee)
void
unpark(java.lang.Object thread)
-
-
-
Field Detail
-
INVALID_FIELD_OFFSET
public static final int INVALID_FIELD_OFFSET
-
ARRAY_BOOLEAN_BASE_OFFSET
public static final int ARRAY_BOOLEAN_BASE_OFFSET
-
ARRAY_BYTE_BASE_OFFSET
public static final int ARRAY_BYTE_BASE_OFFSET
-
ARRAY_SHORT_BASE_OFFSET
public static final int ARRAY_SHORT_BASE_OFFSET
-
ARRAY_CHAR_BASE_OFFSET
public static final int ARRAY_CHAR_BASE_OFFSET
-
ARRAY_INT_BASE_OFFSET
public static final int ARRAY_INT_BASE_OFFSET
-
ARRAY_LONG_BASE_OFFSET
public static final int ARRAY_LONG_BASE_OFFSET
-
ARRAY_FLOAT_BASE_OFFSET
public static final int ARRAY_FLOAT_BASE_OFFSET
-
ARRAY_DOUBLE_BASE_OFFSET
public static final int ARRAY_DOUBLE_BASE_OFFSET
-
ARRAY_OBJECT_BASE_OFFSET
public static final int ARRAY_OBJECT_BASE_OFFSET
-
ARRAY_BOOLEAN_INDEX_SCALE
public static final int ARRAY_BOOLEAN_INDEX_SCALE
-
ARRAY_BYTE_INDEX_SCALE
public static final int ARRAY_BYTE_INDEX_SCALE
-
ARRAY_SHORT_INDEX_SCALE
public static final int ARRAY_SHORT_INDEX_SCALE
-
ARRAY_CHAR_INDEX_SCALE
public static final int ARRAY_CHAR_INDEX_SCALE
-
ARRAY_INT_INDEX_SCALE
public static final int ARRAY_INT_INDEX_SCALE
-
ARRAY_LONG_INDEX_SCALE
public static final int ARRAY_LONG_INDEX_SCALE
-
ARRAY_FLOAT_INDEX_SCALE
public static final int ARRAY_FLOAT_INDEX_SCALE
-
ARRAY_DOUBLE_INDEX_SCALE
public static final int ARRAY_DOUBLE_INDEX_SCALE
-
ARRAY_OBJECT_INDEX_SCALE
public static final int ARRAY_OBJECT_INDEX_SCALE
-
ADDRESS_SIZE
public static final int ADDRESS_SIZE
-
-
Method Detail
-
getUnsafe
public static Unsafe getUnsafe()
-
getInt
public int getInt(java.lang.Object o, long offset)
-
putInt
public void putInt(java.lang.Object o, long offset, int x)
-
getObject
public java.lang.Object getObject(java.lang.Object o, long offset)
-
putObject
public void putObject(java.lang.Object o, long offset, java.lang.Object x)
-
getBoolean
public boolean getBoolean(java.lang.Object o, long offset)
-
putBoolean
public void putBoolean(java.lang.Object o, long offset, boolean x)
-
getByte
public byte getByte(java.lang.Object o, long offset)
-
putByte
public void putByte(java.lang.Object o, long offset, byte x)
-
getShort
public short getShort(java.lang.Object o, long offset)
-
putShort
public void putShort(java.lang.Object o, long offset, short x)
-
getChar
public char getChar(java.lang.Object o, long offset)
-
putChar
public void putChar(java.lang.Object o, long offset, char x)
-
getLong
public long getLong(java.lang.Object o, long offset)
-
putLong
public void putLong(java.lang.Object o, long offset, long x)
-
getFloat
public float getFloat(java.lang.Object o, long offset)
-
putFloat
public void putFloat(java.lang.Object o, long offset, float x)
-
getDouble
public double getDouble(java.lang.Object o, long offset)
-
putDouble
public void putDouble(java.lang.Object o, long offset, double x)
-
getByte
public byte getByte(long address)
-
putByte
public void putByte(long address, byte x)
-
getShort
public short getShort(long address)
-
putShort
public void putShort(long address, short x)
-
getChar
public char getChar(long address)
-
putChar
public void putChar(long address, char x)
-
getInt
public int getInt(long address)
-
putInt
public void putInt(long address, int x)
-
getLong
public long getLong(long address)
-
putLong
public void putLong(long address, long x)
-
getFloat
public float getFloat(long address)
-
putFloat
public void putFloat(long address, float x)
-
getDouble
public double getDouble(long address)
-
putDouble
public void putDouble(long address, double x)
-
getAddress
public long getAddress(long address)
-
putAddress
public void putAddress(long address, long x)
-
allocateMemory
public long allocateMemory(long bytes)
-
reallocateMemory
public long reallocateMemory(long address, long bytes)
-
setMemory
public void setMemory(java.lang.Object o, long offset, long bytes, byte value)
-
setMemory
public void setMemory(long address, long bytes, byte value)
-
copyMemory
public void copyMemory(java.lang.Object srcBase, long srcOffset, java.lang.Object destBase, long destOffset, long bytes)
-
copyMemory
public void copyMemory(long srcAddress, long destAddress, long bytes)
-
freeMemory
public void freeMemory(long address)
-
objectFieldOffset
public long objectFieldOffset(java.lang.reflect.Field f)
-
staticFieldOffset
public long staticFieldOffset(java.lang.reflect.Field f)
-
staticFieldBase
public java.lang.Object staticFieldBase(java.lang.reflect.Field f)
-
shouldBeInitialized
public boolean shouldBeInitialized(java.lang.Class<?> c)
-
ensureClassInitialized
public void ensureClassInitialized(java.lang.Class<?> c)
-
arrayBaseOffset
public int arrayBaseOffset(java.lang.Class<?> arrayClass)
-
arrayIndexScale
public int arrayIndexScale(java.lang.Class<?> arrayClass)
-
addressSize
public int addressSize()
-
pageSize
public int pageSize()
-
defineClass
@Deprecated public java.lang.Class<?> defineClass(java.lang.String name, byte[] b, int off, int len, java.lang.ClassLoader loader, java.security.ProtectionDomain protectionDomain)
Deprecated.
-
defineAnonymousClass
public java.lang.Class<?> defineAnonymousClass(java.lang.Class<?> hostClass, byte[] data, java.lang.Object[] cpPatches)
-
allocateInstance
public java.lang.Object allocateInstance(java.lang.Class<?> cls) throws java.lang.InstantiationException
- Throws:
java.lang.InstantiationException
-
throwException
public void throwException(java.lang.Throwable ee)
-
compareAndSwapObject
public final boolean compareAndSwapObject(java.lang.Object o, long offset, java.lang.Object expected, java.lang.Object x)
-
compareAndSwapInt
public final boolean compareAndSwapInt(java.lang.Object o, long offset, int expected, int x)
-
compareAndSwapLong
public final boolean compareAndSwapLong(java.lang.Object o, long offset, long expected, long x)
-
getObjectVolatile
public java.lang.Object getObjectVolatile(java.lang.Object o, long offset)
-
putObjectVolatile
public void putObjectVolatile(java.lang.Object o, long offset, java.lang.Object x)
-
getIntVolatile
public int getIntVolatile(java.lang.Object o, long offset)
-
putIntVolatile
public void putIntVolatile(java.lang.Object o, long offset, int x)
-
getBooleanVolatile
public boolean getBooleanVolatile(java.lang.Object o, long offset)
-
putBooleanVolatile
public void putBooleanVolatile(java.lang.Object o, long offset, boolean x)
-
getByteVolatile
public byte getByteVolatile(java.lang.Object o, long offset)
-
putByteVolatile
public void putByteVolatile(java.lang.Object o, long offset, byte x)
-
getShortVolatile
public short getShortVolatile(java.lang.Object o, long offset)
-
putShortVolatile
public void putShortVolatile(java.lang.Object o, long offset, short x)
-
getCharVolatile
public char getCharVolatile(java.lang.Object o, long offset)
-
putCharVolatile
public void putCharVolatile(java.lang.Object o, long offset, char x)
-
getLongVolatile
public long getLongVolatile(java.lang.Object o, long offset)
-
putLongVolatile
public void putLongVolatile(java.lang.Object o, long offset, long x)
-
getFloatVolatile
public float getFloatVolatile(java.lang.Object o, long offset)
-
putFloatVolatile
public void putFloatVolatile(java.lang.Object o, long offset, float x)
-
getDoubleVolatile
public double getDoubleVolatile(java.lang.Object o, long offset)
-
putDoubleVolatile
public void putDoubleVolatile(java.lang.Object o, long offset, double x)
-
putOrderedObject
public void putOrderedObject(java.lang.Object o, long offset, java.lang.Object x)
-
putOrderedInt
public void putOrderedInt(java.lang.Object o, long offset, int x)
-
putOrderedLong
public void putOrderedLong(java.lang.Object o, long offset, long x)
-
unpark
public void unpark(java.lang.Object thread)
-
park
public void park(boolean isAbsolute, long time)
-
getLoadAverage
public int getLoadAverage(double[] loadavg, int nelems)
-
getAndAddInt
public final int getAndAddInt(java.lang.Object o, long offset, int delta)
-
getAndAddLong
public final long getAndAddLong(java.lang.Object o, long offset, long delta)
-
getAndSetInt
public final int getAndSetInt(java.lang.Object o, long offset, int newValue)
-
getAndSetLong
public final long getAndSetLong(java.lang.Object o, long offset, long newValue)
-
getAndSetObject
public final java.lang.Object getAndSetObject(java.lang.Object o, long offset, java.lang.Object newValue)
-
loadFence
public void loadFence()
-
storeFence
public void storeFence()
-
fullFence
public void fullFence()
-
invokeCleaner
public void invokeCleaner(java.nio.ByteBuffer directBuffer)
-
-