2008-07-03
■sun.misc.Unsafe
sun.misc.Unsafeのフィールド/メソッド一覧を出力してみる
import sun.misc.Unsafe; import java.lang.reflect.Field; import java.lang.reflect.Method; public class UnsafeClass { public static void main(String[] args) throws Exception { Class uc = Unsafe.class; Field[] fields = uc.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { System.out.println(fields[i].toString().replace("sun.misc.Unsafe.", "") + ";"); } Method[] methods = uc.getDeclaredMethods(); for (int i=0; i<methods.length; i++) { System.out.println(methods[i].toString().replace("sun.misc.Unsafe.", "") + ";"); } } }
と、
private static final sun.misc.Unsafe theUnsafe; public static final int INVALID_FIELD_OFFSET; public native java.lang.Object getObject(java.lang.Object,long); public java.lang.Object getObject(java.lang.Object,int); public native boolean getBoolean(java.lang.Object,long); public boolean getBoolean(java.lang.Object,int); public native byte getByte(java.lang.Object,long); public byte getByte(java.lang.Object,int); public native byte getByte(long); public native short getShort(long); public native short getShort(java.lang.Object,long); public short getShort(java.lang.Object,int); public char getChar(java.lang.Object,int); public native char getChar(long); public native char getChar(java.lang.Object,long); public native int getInt(java.lang.Object,long); public native int getInt(long); public int getInt(java.lang.Object,int); public native long getLong(java.lang.Object,long); public long getLong(java.lang.Object,int); public native long getLong(long); public float getFloat(java.lang.Object,int); public native float getFloat(java.lang.Object,long); public native float getFloat(long); public native double getDouble(long); public double getDouble(java.lang.Object,int); public native double getDouble(java.lang.Object,long); public native long getAddress(long); public void putObject(java.lang.Object,int,java.lang.Object); public native void putObject(java.lang.Object,long,java.lang.Object); public void putBoolean(java.lang.Object,int,boolean); public native void putBoolean(java.lang.Object,long,boolean); public native void putByte(long,byte); public native void putByte(java.lang.Object,long,byte); public void putByte(java.lang.Object,int,byte); public void putShort(java.lang.Object,int,short); public native void putShort(java.lang.Object,long,short); public native void putShort(long,short); public void putChar(java.lang.Object,int,char); public native void putChar(java.lang.Object,long,char); public native void putChar(long,char); public native void putInt(java.lang.Object,long,int); public native void putInt(long,int); public void putInt(java.lang.Object,int,int); public native void putLong(java.lang.Object,long,long); public void putLong(java.lang.Object,int,long); public native void putLong(long,long); public void putFloat(java.lang.Object,int,float); public native void putFloat(java.lang.Object,long,float); public native void putFloat(long,float); public native void putDouble(java.lang.Object,long,double); public native void putDouble(long,double); public void putDouble(java.lang.Object,int,double); public native void putAddress(long,long); public native java.lang.Object getObjectVolatile(java.lang.Object,long); public native boolean getBooleanVolatile(java.lang.Object,long); public native byte getByteVolatile(java.lang.Object,long); public native short getShortVolatile(java.lang.Object,long); public native char getCharVolatile(java.lang.Object,long); public native int getIntVolatile(java.lang.Object,long); public native long getLongVolatile(java.lang.Object,long); public native float getFloatVolatile(java.lang.Object,long); public native double getDoubleVolatile(java.lang.Object,long); public native void putObjectVolatile(java.lang.Object,long,java.lang.Object); public native void putBooleanVolatile(java.lang.Object,long,boolean); public native void putByteVolatile(java.lang.Object,long,byte); public native void putShortVolatile(java.lang.Object,long,short); public native void putCharVolatile(java.lang.Object,long,char); public native void putIntVolatile(java.lang.Object,long,int); public native void putLongVolatile(java.lang.Object,long,long); public native void putFloatVolatile(java.lang.Object,long,float); public native void putDoubleVolatile(java.lang.Object,long,double); public native java.lang.Object allocateInstance(java.lang.Class) throws java.lang.InstantiationException; public final native boolean compareAndSwapObject(java.lang.Object,long,java.lang.Object,java.lang.Object); public final native boolean compareAndSwapLong(java.lang.Object,long,long,long); public final native boolean compareAndSwapInt(java.lang.Object,long,int,int); public native void park(boolean,long); public native void unpark(java.lang.Object); private static native void registerNatives(); public static sun.misc.Unsafe getUnsafe(); public native void throwException(java.lang.Throwable); public native java.lang.Class defineClass(java.lang.String,byte[],int,int,java.lang.ClassLoader,java.security.ProtectionDomain); public native java.lang.Class defineClass(java.lang.String,byte[],int,int); public native long objectFieldOffset(java.lang.reflect.Field); public native int addressSize(); public native long allocateMemory(long); public native int arrayBaseOffset(java.lang.Class); public native int arrayIndexScale(java.lang.Class); public native void copyMemory(long,long,long); public native void ensureClassInitialized(java.lang.Class); public int fieldOffset(java.lang.reflect.Field); public native void freeMemory(long); public native void monitorEnter(java.lang.Object); public native void monitorExit(java.lang.Object); public native int pageSize(); public native long reallocateMemory(long,long); public native void setMemory(long,long,byte); public java.lang.Object staticFieldBase(java.lang.Class); public native java.lang.Object staticFieldBase(java.lang.reflect.Field); public native long staticFieldOffset(java.lang.reflect.Field);
トラックバック - http://d.hatena.ne.jp/hiuchida/20080703/1215050877
リンク元
- 44 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GFRC_jaJP204JP205&q=c++++super+マクロ+親クラス
- 38 http://ezsch.ezweb.ne.jp/search/ezGoogleMain.php?query=ワンクリ&start-index=4&adpage=2&mode=02
- 32 http://ezsch.ezweb.ne.jp/search/?sr=0101&query=ワンクリ詐欺サイト
- 19 http://www.google.co.jp/search?q=volatile&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 18 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=EUG&q=java+byte+unsigned&start=20&sa=N
- 15 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&q=hymen+deflower&btnG=検索&lr=
- 13 http://ezsch.ezweb.ne.jp/search/?sr=0101&query=鉄道運賃
- 13 http://www.google.co.jp/search?hl=ja&q=volatile&btnG=Google+検索&lr=
- 11 http://www.google.co.jp/search?hl=ja&q=volatile&lr=
- 10 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=大手町+地下鉄乗り換え+地図&num=50
