System.out.print의 정체

자바에서는 이클립스 콘솔 창에 출력 할 때, System.out.println(); 이라는 코드로 출력을 한다. 그런데 이 코드는 어떻게 구성되어 있는걸까? 생각없이 출력을 위해서만 작성하다가 문뜩 생각나서 정리해보았다.

자바가 내장하고 있는 기본 패키지인 java.lang 패키지에는 System 이라는 클래스가 포함되어 있다고 한다. 그러니 System은 자바의 내장 객체 인 셈이다.

그럼 out.println은?

System 클래스엔 표준 입출력을 위한 3가지 클래스 변수(static variable) 가 포함되어 있는데, 이게 System.in, System.out, System.err 이다. 이들을 PrintStream 이라고도 한다.

표준 입력 작업을 수행할 때엔 System.in,
표준 출력 작업을 수행할 때엔 System.out을 사용한다.

그리고 파일에 직접 입력할 때엔 System.err을 사용한다.

그리고 다시 out 이라는 클래스 변수에 출력에 필요한 print(), println() 의 메서드가 포함되어 있는 것이다.