类System中是这样定义in的:
public final static InputStream in = nullInputStream();函数是这样的:
private static InputStream nullInputStream() throws NullPointerException {
if (currentTimeMillis() > 0)
return null;
throw new NullPointerException();
}这样定义的in不是表明不指向任何对象吗,那怎么可以用的,何况它也不可能在其他地方改变的:
final
但我们还是经常在用,我的问题:对于指向null的引用怎么能用呢?
System.out也是一样的问题。请各位帮帮忙,帮我解释一下,谢先了。
public final static InputStream in = nullInputStream();函数是这样的:
private static InputStream nullInputStream() throws NullPointerException {
if (currentTimeMillis() > 0)
return null;
throw new NullPointerException();
}这样定义的in不是表明不指向任何对象吗,那怎么可以用的,何况它也不可能在其他地方改变的:
final
但我们还是经常在用,我的问题:对于指向null的引用怎么能用呢?
System.out也是一样的问题。请各位帮帮忙,帮我解释一下,谢先了。
只能看出它指向null
System.in的赋值其实是通过JNI原生函数调用C/C++方法获取操作系统的输入流,属于比较底层的超作