자바 기초(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 은 파란색 입 니 다.
이상 의 자바 기초(System.err 와 System.out)에 대한 상세 한 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 하 실 수 있 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기