Java

[Java] System.out.println

Dev.J 2020. 5. 27. 20:00

System.out.println ???

java를 처음 접하는 사람이라면 제일 먼저 HelloWorld를 찍어보는 소스를 접하게 될 것이고, 나역시 오랜동안 사용하면서도 결과를 출력하는 출력 메서드 정도로만 생각했다. 에러 확인하다 문득 의문이 들어 레퍼런스를 찾아보게 되었다.

 

* System 클래스는 java.lang 패키지에 포함되기 때문에 기본적으로 소스상에서 사용가능

* System 클래스는 Object의 상속을 받고 있고 out은 PrintStream의 인스턴스(객체)임. 

* PrintStream 클래스는 FilterOutputStream을 상속받고 FilterOutputStream은 OutputStream을 상속받고 있음.

* PrintStream 클래스 아래에 살펴보면  print( ), println( ), printf( ) 메서드가 있으며 각 메서드는 매개변수의 자료형에 따라 출력되는 과정이 상이하다.

 

* println( ) 메서드를 눌러보면 매개변수가 있을때  print( ), println( ) 을 호출하고, 매개변수가 없을 때는 줄 구분자 문자열을 작성하여 현재 줄을 종료한다고 되어 있음.

* print( )는 매개변수의 자료형에 따라 문자일 때 기본 문자 인코딩에 따라 바이트로 변환되고 변환된 바이트는 write(int)로 작성되며 write(int)는 바이트를 스트림에 넣어서 기록이 되는 형식, 숫자일 경우 String.ValueOf( )에 의해 생성된 문자열을 기본 문자 인코딩에 따라 바이트로 변환, 변환된 바이트가 wirte(int)로 작성.

 

reference

https://docs.oracle.com/javase/10/docs/api/java/io/PrintStream.html#print(char)

 

PrintStream (Java SE 10 & JDK 10 )

Appends a subsequence of the specified character sequence to this output stream. An invocation of this method of the form out.append(csq, start, end) when csq is not null, behaves in exactly the same way as the invocation out.print(csq.subSequence(start, e

docs.oracle.com

https://docs.oracle.com/javase/10/docs/api/java/lang/System.html

 

System (Java SE 10 & JDK 10 )

Sets the system property indicated by the specified key. First, if a security manager exists, its SecurityManager.checkPermission method is called with a PropertyPermission(key, "write") permission. This may result in a SecurityException being thrown. If n

docs.oracle.com