• System.err.println是运行期异常和错误反馈的输出流的方向
  • 标准输出往往是带缓存,而标准出错没有缓存
  • 与System.out.println混用会导致输出顺序错乱

    public class TestCodeSeg  {
        static{
            System.out.println("1");
        }
        {
            System.out.println("2");
        }
        public TestCodeSeg(){
            System.err.println("3");
        }
        public static void main(String[] args){
            new TestCodeSeg(); //可能3/n 1 /n 2,因为out输出有缓存,err是立即输出,所以混用会导致3与1、2顺序错乱
        }
    }
    
  • 所以,一旦用了哪一个就始终只用那个
  • 代码实例:SpringMvc02/TestCodeSeg