java基础(System.err和System.out)

最近被学弟W问到一道面试题,有一副扑克,红桃,方块,黑桃,梅花,每种花色各一张,输出相加等于24的所有可能。

题目本身很简单,但是学弟W想把红桃和方块用红色的输出,然后他就想到了System.err,这样红色的用System.err输出,黑色的就用System.out输出。结果就出现了问题,顺序完全乱了,如果只用一种颜色顺序就完全没有问题。我看到后也很纳闷儿,然后查资料后发现:

1.System.out在JVM和操作系统都具有缓存功能,就是你输出的东西不一定实时输出,有时候会积攒到一定数量才会输出,System.err会实时输出,单独使用的话可能感觉不到,如果两种方式混合使用就会发现了。

2.如果使用了log4j的日志记录,System.err会被记入日志,System.out不会。

3.JDK的解释是System.out是通常输出信息的方式,System.err是用在显示错误信息或者system.out被重定向以后,需要立即让用户注意到的信息的输出


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值