问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为何,java中system.out.println(),不会报空指针异常???

发布网友 发布时间:2024-04-27 03:47

我来回答

5个回答

热心网友 时间:2024-04-27 08:40

调用main()方法前应该设置过了。

热心网友 时间:2024-04-27 08:36

我的源文件里显示的是:

public final static PrintStream out = nullPrintStream();

private static PrintStream nullPrintStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}

热心网友 时间:2024-04-27 08:37

如果直接用null的话是一定要报空指针异常的。
out肯定是在别处做了实例化才可以用的。
你可以找一下,找到out实例化的地方。

热心网友 时间:2024-04-27 08:43

System.setOut(PrintStream out)是设置程序的标准输出,系统会在程序调用前调用这个方法设置成默认的输出,也就是控制台,如果想重定向到其他地方(如文件)可以通过这个方法在程序Main方法中设置,同样的还有个setErr方法。
下面是它的源码中你没看到的部分:
/**
* The following two methods exist because in, out, and err must be
* initialized to null. The compiler, however, cannot be permitted to
* inline access to them, since they are later set to more sensible values
* by initializeSystemClass().
*/
private static InputStream nullInputStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}

private static PrintStream nullPrintStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}
注意这个的注释,这段注释中提到了一个方法 initalizeSystemClass,上面说到的setOut方法就是在这个方法里被被调用的,这个方法的注释:

/**
* Initialize the system class. Called after thread initialization.
*/
明白了?

热心网友 时间:2024-04-27 08:44

system.out时,out已经被赋值了。赋值在你调用此方法前,JVM装载System类时完成的。JVM会通过OS的系统调用获取控制台句柄,将I/O设备封装为流对象,然后为System类的静态成员赋值~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? DNA复制时的前导链和后置链是怎么回事? 中国地图是a chinese map还是a map of china 一张中国地图可不可说 a chinese map 请英语老师回答我 !!! ...最近父亲也去世了,有一份不知真假的遗嘱(没有进行公正,是代笔的_百 ... ...30年前父亲死亡证明没开出来,之后母亲有去世了,那该怎么办?_百度知 ... 父亲去世了,我们协商分家,儿女不到全而且还没公证人情况下的协议有效吗... 因父亲去世,父亲生前写的赠与协议书是不是遗嘱,协议书没公证有效吗? 父亲去世了,他名下房产公证给他儿子了公证书很多年后有效吗 ...大司马、大都督、太尉有什么区别?骠骑大将军和大将军平级么_百度知 ... 腹热肠荒的意思 我妈妈有食道癌,放化疗之后,现在晚上一直说胃热,还有就是炎症一直消不... plc中m代表什么意思? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... ...帮我写一篇关于展现青少年热爱祖国,奋发向上的作文,写好点,600... 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... 女友说要跟我结婚,我该怎么做 二氧化氮与什么反应生成硝酸 为什么微创手术后伤口很长时间都是鼓鼓的? 感觉自己不想学习,没有什么斗志,该怎么办?玩了一个双休日,也没有负... ...没有了动力,以前初一,初二学习很刻苦,现在整天都在玩,因为我身边的... 睡觉的好处和坏处睡觉有哪些好处和坏处 一直在诉说自己为这段感情付出了多少,根本不考虑对方是否需要。医学上这... 室外喜阴植物有哪些喜阴的室外植物介绍 请问2009年9月16日从包头发往广州的K598 K599到张家口南到底晚了几... 吉利帝豪GS百车故障率高吗? ...问题:你的手机号在最近24小时内已绑定过3个,已达到限制?_百度... ...问题:你的手机号在最近24小时内已绑定过3个,已达到限制?_百度... 奉和中书常舍人晚秋集贤院即事寄徐薛二侍御译文 | 注释 | 赏析_百度... 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... 美漫世界的巫妖王我的世界巫妖王怎么打 我跟女朋友谈一个多月啦,她对我却是不冷不热爱答不理的,总是我主动找... ...我很关心她 但是她总是不关心我 一直对我不冷不热的 我该放弃吗_百... 新谈了个女朋友! 但是我感觉她对我不冷不热的啊!! 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... 为什么帮别人解封要提供本人身份证号和银行卡呢 解封为什么要填银行卡和预留手机号还有身份证? 解封为什么要填银行卡和预留手机号还有身份证 这是很隐私的问... 24小时绑定过三个怎么解除 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 成都到赣州的火车,是在成都北站发车还是东站发车?