ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 화면 출력 함수 - print(), println(), printf()
    Java 2022. 12. 12. 18:50

    화면 출력 함수 - System.out.print(), System.out.println(), System.out.printf().

    Java에서 위의 세 함수를 이용하여 출력하고자 하는 값을 넣으면 console에 값이 출력됩니다.

     

    System.out.print() : 내용 출력 후 다음 행으로 이동하지 않습니다.

    System.out.print(" ");

    위의 코드처럼 ()안에 내용을 입력하면 그 내용이 화면에 출력되게 됩니다.

    출력할 내용이 문자열로 되어 있으면 ""(큰따옴표)로 문자열을 감싸 주면 됩니다.


    System.out.println() : 내용 출력 후 다음 행으로 이동하게 됩니다.

    System.out.println(" ");

    System.out.print()와 내용 입력 방법은 똑같이 ()안에 내용을 입력하고, 내용이 문자열으로 이루어져있으면 ""(큰따옴표)로 문자열을 감싸주면 됩니다. System.out.print()의 상위 버전이 System.out.println()이며. 다음행으로 이동하는지 이동하지 않는지의 차이점만 있습니다.

     

    자바에서 내용을 화면에 출력 할 때, System.out.print()와 System.out.println()을 가장 흔히 사용하지만, 프로덕트 코드에서는 디버그시 System.out.println()을 지양해야합니다.

     

     

    ※ 프로덕트 코드에서 System.out.pritnln()을 지양해야 하는 이유 ※

    프로덕트 코드에서는 System.out.println()대신 로깅 프레임워크를 사용해야합니다. 

    • 로깅 프레임워크는 로그 레벨에 따라 디버깅 정보를 로그하게끔 해줍니다. 레벨 별 출력이 가능하기 때문에, 원하는 정보만 골라서 로깅할 수 있습니다.
    • System.out.println()은 레벨 별 출력이 불가능하고 오직 인포메이션 로그와 에러 로그로만 분류가 가능합니다. 레벨 별 출력이 불가능하다는 뜻은 필터링이 되지 않는 다는 것과 같습니다. 즉. 필터링이 되지 않으면 모든 정보를 출력해야 합니다.  ▶ 효율 저하.
    • System.out.println()은 printstream타입의 인스턴스인 out과 이 printstream클래스 io패키지 내에 있는 println()으로 구성되어 있습니다. 즉, println()은 I/O작업이며, 이는 I/O시스템 콜을 호출하여 커널모드에서 작업하기 때문에 CPU를 계속 점유합니다. ▶ 성능 저하.
    • System.out.println()은 동기화 메서드 이기 때문에 System.out.println()을 호출하게 되면 I/O이 동기화처리 되어 운영 시 계속 작동하게되어(CPU점유) 서버나 프로그램에 영향을 끼쳐 성능이 저하되고, println()으로 디버그 처리한 부분은 일일이 주석처리, 해제해야합니다. ▶ 개발 및 운영의 효율 저하.

    System.out.printf() : 내가 원하는 데이터 형식으로 출력한다. 줄바꿈은 되지 않는다.

    System.out.printf("%d", 3);

    System.out.printf()를 사용할 때에는 위에 코드와 같이 지시자를 사용하여 원하는 데이터 형식을 출력합니다.

    지시자와 함께 플러그를 사용하면 더욱 다양한 형식으로 출력 가능합니다.

     

    • 지시자
    지시자 기능
    %b boolean
    %d 10진수
    %o 8진수
    %x( =%X) 16진수
    %f 실수형 10진수
    %e( =%E) 지수형태
    %c 문자
    %s 문자열
    %n 줄바꿈
    • 플러그
    플러그 기능
    - 왼쪽 정렬
    + 부호 출력
    0 남는 자리 0으로 채움
    , 일정 자리수 마다 구분 문자(,)표시 
    # 8진수, 16진수 표시시 접두사 포함 등
    출력 형태 보안

     

    'Java' 카테고리의 다른 글

    [Java] 리터럴(literal)이란?  (0) 2022.12.16
    [Java] 데이터 타입 (기본타입, 레퍼런스타입)  (0) 2022.12.16
    [Java] 자바 키워드  (0) 2022.11.21
    [Java] 식별자란?  (0) 2022.11.21
    [Java] Eclipse 설치&실행  (0) 2022.11.20
Designed by Tistory.