iteye_6382
2012-07-27 11:16
浏览 311
已采纳

关于System.in的分析

最近在看《JAVA编程思想》,其中System.in迷惑了我。
首先看下System的源码(jdk1.6)
[code="java"]
public final static InputStream in = nullInputStream();

private static InputStream nullInputStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}
[/code]

疑问1: 通过源码可以看到 System.in是System类的一个静态属性,其为InputStream,初始时通过nullInputStream()方法返回,但是return null?

疑问2: 写了一个测试类,通过语句System.out.println(System.in); 打印出结果为:java.io.BufferedInputStream@1fb8ee3,说明System.in是BufferedInputStream类型,如何实现的?

疑问3: 如果线程执行到System.in.read();时,未在console输入内容,线程将挂起,直到console有输入内容。如何实现的?

3条回答 默认 最新

相关推荐 更多相似问题