Filed类中get方法的疑惑.

[code="java"] /**
* @param args
*/
public static void main(String[] args) throws Exception{
Field field = Unsafe.class.getDeclaredFields()[0];
field.setAccessible(true);
Unsafe unsafe = (Unsafe)field.get(null);
while(true){
unsafe.allocateMemory(_1MB);
}

}[/code]

其中 _1MB 是一个常量,不需要管它..但是
[code="java"]Unsafe unsafe = (Unsafe)field.get(null);[/code]
这句为什么能获取到Unsafe对象呢.
望求解

估计你的Unsafe是这样定义的:
[code="java"]
public class Unsafe {
/* may be private, protected or public */static Unsafe unsafe = new Unsafe();

...

}
[/code]
第一个field是静态属性(类属性),可以通过Field$get(null)来获取。

呵呵,看来还需要恶补下基础,慢慢来吧,实际项目中的学习更实在。