# 질의 응답 상황
[면접관]
지원자님 Java을 주로 사용하셨는데 System.out.println()에 대해서 간략하게 설명해주세요. |
[막개발자]
System.out.println()은 콘솔창에 값을 출력할 때 자주 사용하셨을 것 같습니다. 먼저, import 없이 사용할 수 있는 java.lang 패키지 하위에 java.lang.System 클래스 내부에 존재하는 정적 객체인 out이 있습니다. 그래서 객체를 별도로 생성하지 않고 점(.)을 찍어서 사용할 수 있습니다. 이 out 객체는 PrintStream 클래스의 객체이므로 PrintStream이 가진 println() 메서드를 사용합니다. |
# 상세 설명
1. System.out.println()의 구성
- System 클래스
System 클래스는 Java의 java.lang 패키지에 포함된 클래스입니다. 이 클래스는 표준 입력, 출력, 오류 스트림 등을 처리하는 유틸리티 클래스입니다. 대부분의 메서드와 필드는 정적(static)으로 선언되어 있어, 객체를 생성하지 않고 직접 호출할 수 있습니다. - out 필드
out은 System 클래스에 정의된 정적 필드로, PrintStream 클래스의 인스턴스입니다. System.out은 기본적으로 콘솔에 데이터를 출력하는 표준 출력 스트림을 나타냅니다. 내부적으로 버퍼링된 출력 스트림과 연결되어 있습니다. - println() 메서드
println()은 PrintStream 클래스의 메서드로, 전달받은 데이터를 출력하고 줄 바꿈(개행)을 수행합니다. 출력 후 자동으로 \n(줄 바꿈 문자)을 추가합니다. 다양한 데이터 타입을 지원하며, 매개변수 없이 호출할 수도 있습니다.
2. 주요 특징
- 자동 줄 바꿈
println()은 데이터를 출력한 후 자동으로 줄 바꿈을 추가합니다. (반면, print()는 줄 바꿈 없이 출력합니다.) - 다양한 데이터 타입 지원
문자열, 정수, 실수, 불리언, 객체 등 다양한 데이터 타입을 매개변수로 받을 수 있습니다. - 객체 출력
객체를 출력하면 toString() 메서드가 호출되어 해당 객체의 문자열 표현이 출력됩니다.
3. System.out.println()의 동작 원리
println()은 내부적으로 print() 메서드를 호출한 후, 줄 바꿈 문자를 추가합니다. 출력 스트림은 JVM이 기본적으로 제공하는 표준 출력 스트림에 연결되어 있으며, 이 출력 스트림은 데이터를 콘솔(터미널)에 표시하도록 전달합니다.
4. System.out을 다른 스트림으로 리다이렉션
기본적으로 System.out은 콘솔에 출력되지만, 이를 파일이나 다른 출력 스트림으로 변경할 수 있습니다. 예를 들어, System.setOut()을 사용하여 출력 스트림을 변경할 수 있습니다.
5. 주의사항
- 퍼포먼스
많은 데이터를 반복적으로 출력할 경우 성능에 영향을 미칠 수 있습니다. 따라서 로그 라이브러리 사용을 고려하는 것이 좋습니다. - 디버깅 용도
System.out.println()은 디버깅에 유용하지만, 실제 애플리케이션에서는 로깅 프레임워크를 사용하는 것이 권장됩니다. 예: Log4j, SLF4J.
'[이직 면접] 질의 응답' 카테고리의 다른 글
[자료 구조] Stack과 Queue의 차이점과 구현 방법 (0) | 2020.12.29 |
---|---|
[네트워크] OSI 7계층에 대해서 설명하세요. (0) | 2020.12.29 |
[Java] 객체지향 프로그래밍이란 무엇인지 설명하세요. (0) | 2020.12.27 |
[Web 개발 기본] Proxy Pattern에 대해서 설명 하세요. (0) | 2020.12.06 |
[Java] 객체와 class에 대해서 설명하세요. (0) | 2020.12.06 |