为给定的java程序以相反的顺序获取输出

Rus*_*abh 1 java system.out

我在NetBeans IDE上运行了以下java代码.我第一次得到输出

aaaaaa aaaa
!
Run Code Online (Sandbox Code Playgroud)

当我第二次运行相同的代码时,输​​出为

!
aaaaaa aaaa
Run Code Online (Sandbox Code Playgroud)

以相反的顺序......为什么?对于同一段代码

public class check { 
    public String toString(){
        String hello="aaaaaa aaaa";       
        return hello;
    }
    public static void main(String[] args) {
        check obj=new check();
         char[] abc=new char[5];
        System.err.println(obj);
        String hello="heaa^qwertyui";
        hello.getChars(2, 3, abc, 0);
        System.out.println(abc);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

你打印到System.err和System.out.这些是碰巧打印到控制台的不同流.无法预测它们被刷新的顺序以及它们的输出出现的顺序.