ququzhuzhu
发贴: 4
积分: 0
|
于 2005-07-29 08:03
我们都知道System.in.println();表示打印字符串,因为in是System类的静态成员变量,并且是InputSteam对象类型的,所以in就可以调用InputStream类的Println方法;但是我在 System类的原代码中发现in不指向如何对象,代码如下(你们也可以自己去看System类):public final static InputStream in = nullInputStream(); private static InputStream nullInputStream() throws NullPointerException { if (currentTimeMillis() > 0) return null; throw new NullPointerException(); } 表达式currentTimeMillis() > 0当然会成立,说明函数NullPointerException的返回值是null,既然in不指向任何对象,又怎么能调用InputStream类的成员方法呢? 在System类的开始有这么一段代码: private static native void registerNatives(); static { registerNatives(); } 代码中的native我是在不知道为何用?还有registerNatives()这个方法并没有实现代码,这是为什么呢?假如native表示调用本地的此方法,那么本地的方法是放在那呢?在那个具体的类呢? 请各位java爱好着帮帮我这个忙,跪谢。
|