System.err.println()の出力の位置。コード内の位置が類似していても出力が変化します。 System.err.println()の同じ位置の4つのケースを参照してください。その中での出力の位置は変化しています。 comments.pleaseのプログラムの最後の出力を見てください実行の順序を説明してください。驚くべき出力をあなた自身が見るには以下のコードを試してみてください。System.err.println()の出力の位置。変わってきている?
public class System_Ex6 {
public static void main(String[] args)throws Exception {
System.out.println("-----------------case 1-------------------");
System.out.println("Java");
System.err.println("ErrorStatement<======Please observe the position of it "); //output comes in red ink color
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("os.name"));
//System.out.println(System.getProperty("os.version"));
System.out.println(System.getProperty("java.Vendor"));
//System.out.println(System.getProperty("os.version"));
System.gc();
System.out.println("-----------------case 2-------------------");
System.out.println("Java");
System.err.println("ErrorStatement<======Please observe the position of it "); //output comes in red ink color
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("os.name"));
//System.out.println(System.getProperty("os.version"));
System.out.println(System.getProperty("java.Vendor"));
//System.out.println(System.getProperty("os.version"));
System.gc();
System.out.println("-----------------case 3-------------------");
System.out.println("Java");
System.err.println("ErrorStatement<======Please observe the position of it "); //output comes in red ink color
//System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("os.name"));
System.out.println(System.getProperty("os.version"));
System.out.println(System.getProperty("java.Vendor"));
//System.out.println(System.getProperty("os.version"));
System.gc();
System.out.println("-----------------case 4-------------------");
System.out.println("Java");
System.err.println("ErrorStatement<======Please observe the position of it "); //output comes in red ink color
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("os.name"));
//System.out.println(System.getProperty("os.version"));
System.out.println(System.getProperty("java.Vendor"));
System.out.println(System.getProperty("os.version"));
System.gc();
}//main()
}//class
/*
output:
=======
-----------------case 1-------------------
Java
1.8.0_74
Windows 8
null
ErrorStatement<======Please observe the position of it
-----------------case 2-------------------
Java
1.8.0_74
ErrorStatement<======Please observe the position of it
Windows 8
null
-----------------case 3-------------------
Java
ErrorStatement<======Please observe the position of it
Windows 8
6.2
null
-----------------case 4-------------------
Java
1.8.0_74
Windows 8
null
6.2
ErrorStatement<======Please observe the position of it
*/
上記の4つのケースすべてのように、この質問にもっと多くの問題があると思いますが、大部分のコードは同じですが、 "os.version"を呼び出すと大きな違いがありますが、これはSystem.out.flush()を呼び出します。およびSystem.err.flush();内部に?? –