java基础(System.err和System.out)详解
今天有位同事在使用System.err和System.out遇上了一些小问题.
看了些资料总结下:
1.JDK文档对两者的解释:
out:“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
err:“标准”错误输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。按照惯例,此输出流用于显示错误消息,或者显示那些即使用户输出流(变量 out 的值)已经重定向到通常不被连续监视的某一文件或其他目标,也应该立刻引起用户注意的其他信息。
2.out和err的一个区别是,out往往是带缓存的,而err没有缓存(默认设置,可以改)。所以如果你用标准出错打印出来的东西可以马上显示在屏幕,而标准输出打印出来的东西可能要再积累几个字符才能一起打印出来。如果你在应用中混用标准输出和标准出错就可能看到这个问题。
测试代码:
public class Test2 {
static{
System.out.println("1");
}
public static void main(String[] args) {
System.err.println("2");
new Test2();
}
public Test2() {
System.out.println("3");
}
}
测试结果: 1,3的位置相对不变,2的位置随机出现.尽量避免混用!
3.如果使用了log4j的日志记录,System.err会被记入日志,System.out不会
ps:打印System.err在eclipse是红色的。System.out是蓝色的。
栏 目:JAVA代码
下一篇:JDK14的新特性:instanceof模式匹配的使用
本文标题:java基础(System.err和System.out)详解
本文地址:http://www.codeinn.net/misctech/30170.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




