본문 바로가기

카테고리 없음

자바의 System 클래스를 활용한 입출력문 처리와 주요 기능 설명

목차:

1. System 클래스 소개:

  • 1.1 System 클래스란

  • 1.2 System 클래스의 역할

  • 1.3 System 클래스의 주요 메소드

2. System 클래스를 활용한 입출력문 처리:

  • 2.1 System.out.println() 메소드

  • 2.2 System.out.print() 메소드

  • 2.3 System.out.printf() 메소드

  • 2.4 System.in과 Scanner 클래스를 활용한 입력 처리

3. System 클래스의 주요 기능 설명:

  • 3.1 System 클래스의 시간 관련 메소드 (currentTimeMillis, nanoTime 등)

  • 3.2 System 클래스의 환경 관련 메소드 (getProperties, getProperty 등)

  • 3.3 System 클래스의 종료 관련 메소드 (exit, gc 등)

    1. System 클래스 소개:

1.1 System 클래스란

System 클래스는 자바에서 제공하는 기본 클래스 중 하나로, 시스템과 관련된 정보와 기능을 제공하는 클래스입니다. System 클래스는 java.lang 패키지에 속해 있으며, 모든 자바 프로그램에서 사용할 수 있습니다.

1.2 System 클래스의 역할

System 클래스는 다음과 같은 역할을 수행합니다:

  • 시스템의 입출력과 관련된 기능을 제공합니다.
  • 시스템의 프로퍼티(환경 변수)를 제공합니다.
  • 시스템의 현재 시간을 제공합니다.
  • 시스템의 종료와 가비지 컬렉션 등 종료 관련 기능을 제공합니다.

1.3 System 클래스의 주요 메소드

System 클래스는 여러 가지 유용한 메소드를 제공합니다. 일부 주요 메소드는 다음과 같습니다:

  • currentTimeMillis() : 1970년 1월 1일 자정을 기준으로 현재 시간까지의 밀리초를 반환합니다.
  • nanoTime() : 1970년 1월 1일 자정을 기준으로 현재 시간까지의 나노초를 반환합니다.
  • getProperty(String key) : 주어진 키에 해당하는 시스템 프로퍼티 값을 반환합니다.
  • getProperties() : 시스템의 모든 프로퍼티 값을 반환합니다.
  • exit(int status) : 현재 실행중인 자바 프로그램을 종료합니다.
  • gc() : 가비지 컬렉션을 수행합니다.

System 클래스는 다른 클래스와 함께 사용하여 여러 가지 기능을 구현할 수 있습니다. 다음 섹션에서는 System 클래스를 활용한 입출력문 처리에 대해 알아보겠습니다.

2. System 클래스를 활용한 입출력문 처리:

2.1 System.out.println() 메소드

System.out.println() 메소드는 콘솔에 출력문을 출력하는 역할을 합니다. 이 메소드는 인자로 전달한 값을 출력한 후 자동으로 줄바꿈을 수행합니다. 예를 들어, 다음과 같이 사용할 수 있습니다:

System.out.println("Hello, World!"); // "Hello, World!" 출력 후 줄바꿈

2.2 System.out.print() 메소드

System.out.print() 메소드는 System.out.println() 메소드와 유사하지만, 줄바꿈을 수행하지 않고 값을 출력합니다. 예를 들어, 다음과 같이 사용할 수 있습니다:

System.out.print("Hello, "); // "Hello, " 출력
System.out.print("World!"); // "World!" 출력

위의 코드는 "Hello, World!"를 출력하지만 줄바꿈은 되지 않습니다.

2.3 System.out.printf() 메소드

System.out.printf() 메소드는 형식화된 문자열을 포맷에 맞추어 출력하는 역할을 합니다. printf() 메소드는 서식 지정자를 사용하여 출력할 값의 형식을 지정할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다:

String name = "Alice";
int age = 25;
double height = 165.5;

System.out.printf("이름: %s, 나이: %d, 키: %.2fcm", name, age, height);

위의 코드는 "이름: Alice, 나이: 25, 키: 165.50cm"를 출력합니다. %s, %d, %f는 각각 문자열, 정수, 실수 값을 대체하기 위한 서식 지정자입니다.

2.4 System.in과 Scanner 클래스를 활용한 입력 처리

System.in은 표준 입력 스트림으로, 콘솔에서 사용자 입력을 받을 수 있도록 도와줍니다. Scanner 클래스와 함께 사용하여 사용자로부터 값을 입력받을 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다:

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력하세요: ");
String name = scanner.nextLine(); // 한 줄의 문자열을 입력받음

System.out.print("나이를 입력하세요: ");
int age = scanner.nextInt(); // 정수 값을 입력받음

System.out.println("입력한 정보:");
System.out.println("이름: " + name);
System.out.println("나이: " + age);

위의 코드는 사용자로부터 이름과 나이를 입력받은 후, 입력받은 값을 출력합니다.

System 클래스는 입출력과 관련된 기능뿐만 아니라 시간 관련 기능, 환경 관련 기능, 종료 관련 기능 등 다양한 기능을 제공합니다. 다음 섹션에서는 System 클래스의 주요 기능을 상세히 설명하겠습니다.

3. System 클래스의 주요 기능 설명:

3.1 currentTimeMillis() 메소드

System.currentTimeMillis() 메소드는 1970년 1월 1일 자정을 기준으로 현재까지 경과한 시간을 밀리초 단위로 반환합니다. 이는 주로 프로그램의 실행 시간을 측정하거나 시간 간격을 계산하는 용도로 사용됩니다. 예를 들어, 다음과 같이 사용할 수 있습니다:

long startTime = System.currentTimeMillis();

// 실행 시간을 측정하고 싶은 코드

long endTime = System.currentTimeMillis();
long duration = endTime - startTime;
System.out.println("실행 시간: " + duration + "ms");

위의 코드는 특정 코드 블록의 실행 시간을 측정하여 출력합니다.

3.2 nanoTime() 메소드

System.nanoTime() 메소드는 1970년 1월 1일 자정을 기준으로 현재까지 경과한 시간을 나노초 단위로 반환합니다. currentTimeMillis() 메소드보다 더 정밀한 시간 정보를 제공하기 때문에 더 세밀한 시간 측정에 사용됩니다.

3.3 getProperty() 메소드

System.getProperty(String key) 메소드는 주어진 키에 해당하는 시스템 프로퍼티 값을 반환합니다. 시스템 프로퍼티는 시스템 환경과 관련된 값을 가지며, 시스템의 일부 설정을 나타냅니다. 예를 들어, 다음과 같이 사용할 수 있습니다:

// 자바 버전 정보 출력
String javaVersion = System.getProperty("java.version");
System.out.println("Java 버전: " + javaVersion);

// 현재 작업 디렉토리 출력
String workingDir = System.getProperty("user.dir");
System.out.println("작업 디렉토리: " + workingDir);

위의 코드는 자바 버전 정보와 현재 작업 디렉토리를 출력합니다.

3.4 getProperties() 메소드

System.getProperties() 메소드는 시스템의 모든 프로퍼티 값을 반환합니다. 이 메소드는 Properties 객체를 반환하며, Properties 객체는 키-값 쌍으로 구성된 시스템 프로퍼티를 담고 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다:

Properties properties = System.getProperties();
Set<String> keys = properties.stringPropertyNames();

for(String key : keys) {
    String value = properties.getProperty(key);
    System.out.println(key + ": " + value);
}

위의 코드는 시스템의 모든 프로퍼티 값을 출력합니다.

3.5 exit() 메소드

System.exit(int status) 메소드는 현재 실행 중인 자바 프로그램을 종료합니다. 인자로 전달한 status 값은 종료 상태를 나타내며, 일반적으로 0은 정상 종료를 의미하고 0이 아닌 값은 비정상 종료를 의미합니다.

3.6 gc() 메소드

System.gc() 메소드는 가비지 컬렉션을 수행하도록 시스템에 요청합니다. 가비지 컬렉션은 더 이상 사용되지 않는 객체를 메모리에서 정리하는 작업입니다. gc() 메소드를 호출하면 가상머신은 적절한 시기에 가비지 컬렉션을 수행합니다.

System 클래스는 또한 그 외에도 다양한 메소드를 제공하며, 주요 기능 외에도 유용한 기능을 제공합니다. 이를 통해 자바 프로그램에서 시스템과 관련된 다양한 작업을 수행할 수 있습니다.

3. System 클래스의 주요 기능 설명:

3.1 currentTimeMillis() 메소드

System.currentTimeMillis() 메소드는 1970년 1월 1일 자정을 기준으로 현재까지 경과한 시간을 밀리초 단위로 반환합니다. 이 메소드는 주로 프로그램의 실행 시간을 측정하거나 시간 간격을 계산하는 용도로 사용됩니다.

이 메소드를 사용하여 특정 코드 블록의 실행 시간을 측정하려면, 코드 블록 시작 시간을 startTime 변수에 저장한 후, 코드 블록이 끝난 후 endTime 변수에 현재 시간을 저장합니다. 그리고 endTime에서 startTime을 빼서 실행 시간을 구하고, 이 값을 출력하면 됩니다. 이렇게 실행 시간을 측정할 수 있습니다.

3.2 nanoTime() 메소드

System.nanoTime() 메소드는 1970년 1월 1일 자정을 기준으로 현재까지 경과한 시간을 나노초 단위로 반환합니다. currentTimeMillis() 메소드보다 더 정밀한 시간 정보를 제공하기 때문에 더 세밀한 시간 측정에 사용됩니다.

3.3 getProperty() 메소드

System.getProperty(String key) 메소드는 주어진 키에 해당하는 시스템 프로퍼티 값을 반환합니다. 시스템 프로퍼티는 시스템 환경과 관련된 값을 가지며, 시스템의 일부 설정을 나타냅니다.

예를 들어, java.version이라는 키를 전달하면 자바 버전 정보를 반환하고, user.dir이라는 키를 전달하면 현재 작업 디렉토리 정보를 반환합니다. 프로그램에서 이러한 시스템 설정 값을 이용하여 특정 작업을 수행하거나 출력할 수 있습니다.

3.4 getProperties() 메소드

System.getProperties() 메소드는 시스템의 모든 프로퍼티 값을 반환합니다. 이 메소드는 Properties 객체를 반환하며, Properties 객체는 키-값 쌍으로 구성된 시스템 프로퍼티를 담고 있습니다.

getProperties() 메소드를 사용하여 시스템의 모든 프로퍼티 값을 가져온 후, 이를 순회하면서 각 키와 값을 출력하거나 필요한 작업에 활용할 수 있습니다.

3.5 exit() 메소드

System.exit(int status) 메소드는 현재 실행 중인 자바 프로그램을 종료합니다. 인자로 전달한 status 값은 종료 상태를 나타내며, 일반적으로 0은 정상 종료를 의미하고 0이 아닌 값은 비정상 종료를 의미합니다.

exit() 메소드를 사용하여 프로그램을 종료할 때는 종료 상태에 따라 적절한 처리를 수행할 수 있습니다. 예를 들어, 어떤 조건이 만족되지 않으면 프로그램을 종료할 수 있고, 특정 오류 상황이 발생하면 비정상 종료를 알릴 수 있습니다.

3.6 gc() 메소드

System.gc() 메소드는 가비지 컬렉션을 수행하도록 시스템에 요청합니다. 가비지 컬렉션은 더 이상 사용되지 않는 객체를 메모리에서 정리하는 작업입니다. gc() 메소드를 호출하면 가상머신은 적절한 시기에 가비지 컬렉션을 수행합니다.

gc() 메소드는 명시적으로 가비지 컬렉션을 수행하고 싶을 때 사용됩니다. 가비지 컬렉션은 자동으로 수행되지만, 프로그램이 특정 시기에 자원을 확보하려는 경우나 메모리 관리에 관심이 있는 경우에 직접적으로 가비지 컬렉션을 수행할 수 있습니다.

System 클래스의 다양한 메소드를 사용하여 시스템과 관련된 작업을 수행할 수 있습니다. 이를 활용하면 자바 프로그램에서 시간 측정, 시스템 프로퍼티 확인, 프로그램 종료 처리 등 다양한 작업을 수행할 수 있습니다.

1. System 클래스 소개:

System 클래스는 자바 프로그램에서 시스템과 상호작용하기 위한 기능을 제공하는 클래스입니다. 이 클래스는 java.lang 패키지에 속해 있으며, 자바 프로그램의 실행 환경과 관련된 작업을 수행할 수 있도록 도와줍니다. System 클래스는 여러 가지 정적 메소드를 제공하여 시스템과 관련된 동작을 수행할 수 있습니다.

1.1. Standard Input/Output 관련 기능:

System 클래스는 표준 입력과 출력에 관련된 기능을 제공합니다.

  • System.in은 표준 입력 스트림을 나타내며, 사용자 입력을 받을 때 사용됩니다.
  • System.out은 표준 출력 스트림을 나타내며, 결과를 화면에 출력할 때 사용됩니다.
  • System.err은 표준 에러 스트림을 나타내며, 에러 메시지를 출력할 때 사용됩니다.

이러한 스트림들은 대부분의 자바 애플리케이션에서 기본적으로 사용되는 입출력 기능을 제공합니다.

1.2. 프로그램 실행 시간 측정:

System 클래스는 프로그램의 실행 시간을 측정하는 기능을 제공합니다.

  • System.currentTimeMillis() 메소드는 1970년 1월 1일 자정을 기준으로 현재까지 경과한 시간을 밀리초 단위로 반환합니다. 이를 이용하여 코드 블록의 실행 시간을 측정하거나 시간 간격을 계산할 수 있습니다.
  • System.nanoTime() 메소드는 currentTimeMillis()보다 더 정밀한 시간 정보를 제공합니다. 나노초 단위로 시간을 반환하여 더 세밀한 시간 측정이 가능합니다.

이러한 기능은 프로그램의 성능 향상과 디버깅에 유용합니다.

1.3. 시스템 프로퍼티 관리:

System 클래스는 시스템 프로퍼티를 조회하고 관리하는 기능을 제공합니다.

  • System.getProperty(String key) 메소드는 주어진 키에 해당하는 시스템 프로퍼티 값을 반환합니다. 자바 버전 정보, 작업 디렉토리, 운영체제 등의 정보를 조회할 수 있습니다.
  • System.getProperties() 메소드는 시스템의 모든 프로퍼티 값을 반환합니다. Properties 객체를 반환하여 시스템의 모든 프로퍼티를 순회하고, 필요한 정보를 추출할 수 있습니다.

시스템 프로퍼티를 활용하여 프로그램을 유연하게 설정하거나, 특정 작업에 맞게 동작하도록 조정할 수 있습니다.

1.4. 프로그램 종료 및 가비지 컬렉션:

System 클래스는 프로그램을 종료하고, 가비지 컬렉션을 수행하는 기능도 제공합니다.

  • System.exit(int status) 메소드는 현재 실행 중인 자바 프로그램을 종료합니다. 종료 상태를 나타내는 status 값을 전달하여 종료 상태에 따른 처리를 수행할 수 있습니다.
  • System.gc() 메소드는 가비지 컬렉션을 수행하도록 시스템에 요청합니다. 메모리를 해제하고 더 이상 사용되지 않는 객체를 정리할 수 있도록 도와줍니다.

이러한 기능은 프로그램의 종료 처리와 메모리 관리를 효과적으로 수행하는 데에 도움을 줍니다.

System 클래스는 자바 프로그램에서 시스템과의 상호작용을 지원하는 다양한 기능을 제공합니다. 이를 활용하여 입력과 출력, 실행 시간 측정, 시스템 프로퍼티 관리, 프로그램 종료 처리 및 가비지 컬렉션 등 다양한 작업을 수행할 수 있습니다.

1.1 System 클래스란:

System 클래스는 자바 프로그램에서 시스템과 상호작용하기 위한 기능을 제공하는 클래스입니다. 이 클래스는 java.lang 패키지에 속해 있으며, 자바 프로그램의 실행 환경과 관련된 작업을 수행할 수 있도록 도와줍니다.

1.1.1. Standard Input/Output 관련 기능:

System 클래스는 표준 입력과 출력에 관련된 기능을 제공합니다.

  • System.in은 표준 입력 스트림을 나타내며, 사용자로부터의 입력을 받을 때 사용됩니다.
  • System.out은 표준 출력 스트림을 나타내며, 결과를 화면에 출력할 때 사용됩니다.
  • System.err은 표준 에러 스트림을 나타내며, 에러 메시지를 출력할 때 사용됩니다.

이러한 스트림들은 대부분의 자바 애플리케이션에서 기본적으로 사용되는 입출력 기능을 제공합니다.

1.1.2. 프로그램 실행 시간 측정:

System 클래스는 프로그램의 실행 시간을 측정하는 기능을 제공합니다.

  • System.currentTimeMillis() 메소드는 1970년 1월 1일 자정을 기준으로 현재까지 경과한 시간을 밀리초 단위로 반환합니다. 이를 이용하여 코드 블록의 실행 시간을 측정하거나 시간 간격을 계산할 수 있습니다.
  • System.nanoTime() 메소드는 currentTimeMillis()보다 더 정밀한 시간 정보를 제공합니다. 나노초 단위로 시간을 반환하여 더 세밀한 시간 측정이 가능합니다.

이러한 기능은 프로그램의 성능 향상과 디버깅에 유용합니다.

1.1.3. 시스템 프로퍼티 관리:

System 클래스는 시스템 프로퍼티를 조회하고 관리하는 기능을 제공합니다.

  • System.getProperty(String key) 메소드는 주어진 키에 해당하는 시스템 프로퍼티 값을 반환합니다. 자바 버전 정보, 작업 디렉토리, 운영체제 등의 정보를 조회할 수 있습니다.
  • System.getProperties() 메소드는 시스템의 모든 프로퍼티 값을 반환합니다. Properties 객체를 반환하여 시스템의 모든 프로퍼티를 순회하고, 필요한 정보를 추출할 수 있습니다.

시스템 프로퍼티를 활용하여 프로그램을 유연하게 설정하거나, 특정 작업에 맞게 동작하도록 조정할 수 있습니다.

1.1.4. 프로그램 종료 및 가비지 컬렉션:

System 클래스는 프로그램을 종료하고, 가비지 컬렉션을 수행하는 기능도 제공합니다.

  • System.exit(int status) 메소드는 현재 실행 중인 자바 프로그램을 종료합니다. 종료 상태를 나타내는 status 값을 전달하여 종료 상태에 따른 처리를 수행할 수 있습니다.
  • System.gc() 메소드는 가비지 컬렉션을 수행하도록 시스템에 요청합니다. 메모리를 해제하고 더 이상 사용되지 않는 객체를 정리할 수 있도록 도와줍니다.

이러한 기능은 프로그램의 종료 처리와 메모리 관리를 효과적으로 수행하는데 도움을 줍니다.

System 클래스는 자바 프로그램에서 시스템과의 상호작용을 지원하는 다양한 기능을 제공합니다. 이를 활용하여 입력과 출력, 실행 시간 측정, 시스템 프로퍼티 관리, 프로그램 종료 처리 및 가비지 컬렉션 등 다양한 작업을 수행할 수 있습니다.

1.2 System 클래스의 역할:

System 클래스는 자바 프로그램에서 시스템과 상호작용하는 역할을 수행합니다. 이 클래스는 java.lang 패키지에 속해 있으며, 시스템과 관련된 다양한 기능을 제공하여 자바 프로그램의 실행 환경을 조작할 수 있도록 도와줍니다.

1.2.1. Standard Input/Output 관련 기능:

System 클래스는 표준 입력과 출력에 관련된 기능을 제공합니다.

  • System.in은 표준 입력 스트림을 나타냅니다. 사용자로부터의 입력을 받을 때 사용되며, 주로 Scanner 클래스와 함께 사용하여 사용자로부터 값을 입력받을 수 있습니다.
  • System.out은 표준 출력 스트림을 나타냅니다. 결과를 화면에 출력할 때 사용되며, System.out.print() 또는 System.out.println() 메소드를 이용하여 값을 출력할 수 있습니다.
  • System.err은 표준 에러 스트림을 나타냅니다. 에러 메시지를 출력할 때 사용되며, 주로 예외 처리 시에 사용됩니다.

이러한 스트림들을 활용하여 사용자 입력을 받거나 출력을 할 수 있습니다.

1.2.2. 프로그램 실행 시간 측정:

System 클래스는 프로그램의 실행 시간을 측정하는 기능을 제공합니다.

  • System.currentTimeMillis() 메소드는 1970년 1월 1일 자정을 기준으로 현재까지 경과한 시간을 밀리초 단위로 반환합니다. 이를 사용하여 어떤 코드 블록이 얼마나 오래 실행되는지 측정할 수 있습니다.
  • System.nanoTime() 메소드는 currentTimeMillis()와 비슷하지만, 더 높은 정밀도를 제공합니다. 나노초 단위로 시간을 반환하여 세밀한 시간 측정이 가능합니다.

이러한 기능은 프로그램의 성능 측정이나 디버깅 시에 유용하게 사용될 수 있습니다.

1.2.3. 시스템 프로퍼티 관리:

System 클래스는 시스템 프로퍼티를 조회하고 관리하는 기능을 제공합니다.

  • System.getProperty(String key) 메소드는 주어진 키에 해당하는 시스템 프로퍼티 값을 반환합니다. 자바 버전 정보, 작업 디렉토리, 운영체제 등의 정보를 조회할 수 있습니다.
  • System.getProperties() 메소드는 시스템의 모든 프로퍼티 값을 반환합니다. 이를 통해 시스템의 모든 프로퍼티를 확인하고 원하는 정보를 추출할 수 있습니다.

시스템 프로퍼티를 활용하여 프로그램을 유연하게 설정하거나, 특정 작업에 맞게 동작하도록 조정할 수 있습니다.

1.2.4. 프로그램 종료 및 가비지 컬렉션:

System 클래스는 프로그램을 종료하고, 가비지 컬렉션을 수행하는 기능도 제공합니다.

  • System.exit(int status) 메소드는 현재 실행 중인 자바 프로그램을 종료합니다. 종료 상태를 나타내는 status 값을 전달하여 종료 상태에 따른 처리를 수행할 수 있습니다.
  • System.gc() 메소드는 가비지 컬렉션을 수행하도록 시스템에 요청합니다. 가비지 컬렉터는 메모리를 해제하고 더 이상 사용되지 않는 객체를 정리합니다.

이러한 기능은 프로그램의 종료 처리와 메모리 관리를 효과적으로 수행하는 데에 도움을 줍니다.

System 클래스는 자바 프로그램에서 시스템과의 상호작용을 지원하는 다양한 기능을 제공합니다. 이를 활용하여 입출력, 실행 시간 측정, 시스템 프로퍼티 관리, 프로그램 종료 처리 및 가비지 컬렉션 등 다양한 작업을 효과적으로 수행할 수 있습니다.

1.3 System 클래스의 주요 메소드:

System 클래스에는 다양한 메소드가 제공되며, 이를 활용하여 시스템과 상호작용하고 프로그램을 제어할 수 있습니다. 주요 메소드에 대해 설명하겠습니다.

1.3.1. Standard Input/Output 관련 메소드:

1.3.1.1. System.out.println()

  • System.out.println() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 출력 스트림에 출력하고, 자동으로 줄바꿈을 수행합니다.

1.3.1.2. System.out.print()

  • System.out.print() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 출력 스트림에 출력합니다. 줄바꿈은 수행하지 않으므로 출력 내용이 한 줄에 연속되어 출력됩니다.

1.3.1.3. System.err.println()

  • System.err.println() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 에러 스트림에 출력하고, 자동으로 줄바꿈을 수행합니다. 주로 예외처리 시에 사용됩니다.

1.3.2. 실행 시간 측정 관련 메소드:

1.3.2.1. System.currentTimeMillis()

  • System.currentTimeMillis() 메소드는 현재 시간을 밀리초 단위로 반환합니다. 1970년 1월 1일 자정을 기준으로 현재까지의 경과 시간을 나타내며, 실행 시간을 측정하는 데 사용됩니다.

1.3.2.2. System.nanoTime()

  • System.nanoTime() 메소드는 currentTimeMillis()와 비슷하지만, 더 높은 정밀도를 제공합니다. 현재의 나노초 값을 반환하여 시간 측정을 더 세밀하게 할 수 있습니다.

1.3.3. 시스템 프로퍼티 관리 관련 메소드:

1.3.3.1. System.getProperty(String key)

  • System.getProperty(String key) 메소드는 주어진 키에 해당하는 시스템 프로퍼티 값을 반환합니다. 자바 버전 정보, 작업 디렉토리, 운영체제 등의 정보를 조회할 수 있습니다.

1.3.3.2. System.getProperties()

  • System.getProperties() 메소드는 시스템의 모든 프로퍼티 값을 Properties 객체로 반환합니다. 이를 통해 시스템의 모든 프로퍼티를 확인하고 필요한 정보를 추출할 수 있습니다.

1.3.4. 프로그램 종료 및 가비지 컬렉션 관련 메소드:

1.3.4.1. System.exit(int status)

  • System.exit(int status) 메소드는 현재 실행 중인 자바 프로그램을 종료합니다. 종료 상태를 나타내는 정수값인 status를 전달하여 종료 상태에 따른 처리를 수행할 수 있습니다.

1.3.4.2. System.gc()

  • System.gc() 메소드는 가비지 컬렉션을 수행하도록 시스템에 요청합니다. 가비지 컬렉터는 메모리를 해제하고 더 이상 사용되지 않는 객체를 정리하여 메모리 관리를 수행합니다.

System 클래스의 주요 메소드를 사용하여 자바 프로그램에서 시스템과의 상호작용을 수행할 수 있습니다. 표준 입출력, 실행 시간 측정, 시스템 프로퍼티 관리, 프로그램 종료 처리, 가비지 컬렉션 등 다양한 기능을 활용하여 프로그램을 제어할 수 있습니다.

System 클래스의 주요 메소드

Standard Input/Output 관련 메소드

System.out.println()

  • System.out.println() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 출력 스트림에 출력하고, 자동으로 줄바꿈을 수행합니다.

System.out.print()

  • System.out.print() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 출력 스트림에 출력합니다. 줄바꿈은 수행하지 않으므로 출력 내용이 한 줄에 연속되어 출력됩니다.

System.err.println()

  • System.err.println() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 에러 스트림에 출력하고, 자동으로 줄바꿈을 수행합니다. 주로 예외처리 시에 사용됩니다.

실행 시간 측정 관련 메소드

System.currentTimeMillis()

  • System.currentTimeMillis() 메소드는 현재 시간을 밀리초 단위로 반환합니다. 1970년 1월 1일 자정을 기준으로 현재까지의 경과 시간을 나타내며, 실행 시간을 측정하는 데 사용됩니다.

System.nanoTime()

  • System.nanoTime() 메소드는 currentTimeMillis()와 비슷하지만, 더 높은 정밀도를 제공합니다. 현재의 나노초 값을 반환하여 시간 측정을 더 세밀하게 할 수 있습니다.

시스템 프로퍼티 관리 관련 메소드

System.getProperty(String key)

  • System.getProperty(String key) 메소드는 주어진 키에 해당하는 시스템 프로퍼티 값을 반환합니다. 자바 버전 정보, 작업 디렉토리, 운영체제 등의 정보를 조회할 수 있습니다.

System.getProperties()

  • System.getProperties() 메소드는 시스템의 모든 프로퍼티 값을 Properties 객체로 반환합니다. 이를 통해 시스템의 모든 프로퍼티를 확인하고 필요한 정보를 추출할 수 있습니다.

프로그램 종료 및 가비지 컬렉션 관련 메소드

System.exit(int status)

  • System.exit(int status) 메소드는 현재 실행 중인 자바 프로그램을 종료합니다. 종료 상태를 나타내는 정수값인 status를 전달하여 종료 상태에 따른 처리를 수행할 수 있습니다.

System.gc()

  • System.gc() 메소드는 가비지 컬렉션을 수행하도록 시스템에 요청합니다. 가비지 컬렉터는 메모리를 해제하고 더 이상 사용되지 않는 객체를 정리하여 메모리 관리를 수행합니다.

System 클래스의 주요 메소드를 사용하여 자바 프로그램에서 시스템과의 상호작용을 수행할 수 있습니다. 표준 입출력, 실행 시간 측정, 시스템 프로퍼티 관리, 프로그램 종료 처리, 가비지 컬렉션 등 각 메소드를 활용하여 프로그램을 제어할 수 있습니다.

2. System 클래스를 활용한 입출력문 처리

Standard Input/Output 관련 메소드

Java 프로그램에서 System 클래스를 사용하여 간단한 입출력 작업을 처리할 수 있습니다. System.outSystem.err는 각각 표준 출력과 표준 에러를 나타내는 출력 스트림입니다.

System.out.println()

System.out.println("Hello, World!");
  • System.out.println() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 출력 스트림에 출력하고, 자동으로 줄바꿈을 수행합니다. 위의 예제에서는 "Hello, World!"라는 문자열을 출력합니다.

System.out.print()

System.out.print("Hello, ");
System.out.print("World!");
  • System.out.print() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 출력 스트림에 출력합니다. 줄바꿈은 수행하지 않으므로 출력 내용이 한 줄에 연속되어 출력됩니다. 위의 예제에서는 "Hello, "와 "World!"를 별도의 출력문으로 처리하여 한 줄에 출력합니다.

System.err.println()

System.err.println("Error: Something went wrong.");
  • System.err.println() 메소드는 매개변수로 전달된 값을 문자열로 변환하여 표준 에러 스트림에 출력하고, 자동으로 줄바꿈을 수행합니다. 이 메소드는 주로 예외처리 시에 사용되며, 오류 메시지를 표준 에러로 출력합니다.

위의 메소드들은 간단한 출력 작업을 처리하는 데 유용하며, 자바 프로그램에서 정보를 표시하고 디버깅할 때 자주 사용됩니다.

다음으로는 실제 실행 시간을 측정하는데 사용되는 메소드에 대해 알아보겠습니다.

2.1 System.out.println() 메소드

System.out.println() 메소드는 자바 프로그램에서 표준 출력 스트림에 문자열을 출력하는 메소드입니다. 이 메소드는 매개변수로 전달된 값을 문자열로 변환하여 출력하고, 자동으로 줄바꿈을 수행합니다.

메소드 시그니처

public void println(String value)
  • String value: 출력할 값으로, 문자열로 변환되어 표준 출력 스트림에 출력됩니다.

메소드 사용 예시

System.out.println("Hello, World!");
  • 위의 예시에서는 "Hello, World!"라는 문자열을 표준 출력 스트림에 출력하고 줄바꿈을 수행합니다.

출력 결과

Hello, World!
  • System.out.println() 메소드를 사용하면 매개변수로 전달된 값을 문자열로 변환하여 표준 출력 스트림에 출력하고, 자동으로 줄바꿈을 수행합니다. 따라서 위의 예시에서는 "Hello, World!"라는 문자열이 출력된 후 다음 줄로 커서가 이동합니다.

System.out.println() 메소드는 간단한 출력 작업을 처리하는 데 유용하며, 자바 프로그램에서 정보를 표시하고 디버깅할 때 자주 활용됩니다. 다음으로는 실행 시간 측정과 관련된 메소드인 System.currentTimeMillis()System.nanoTime()에 대해 알아보겠습니다.

2.2 System.out.print() 메소드

System.out.print() 메소드는 자바 프로그램에서 표준 출력 스트림에 문자열을 출력하는 메소드입니다. 이 메소드는 매개변수로 전달된 값을 문자열로 변환하여 출력합니다. 줄바꿈은 수행하지 않으므로 출력 내용이 한 줄에 연속되어 출력됩니다.

메소드 시그니처

public void print(String value)
  • String value: 출력할 값으로, 문자열로 변환되어 표준 출력 스트림에 출력됩니다.

메소드 사용 예시

System.out.print("Hello, ");
System.out.print("World!");
  • 위의 예시에서는 "Hello, "와 "World!"를 각각 별도의 출력문으로 처리하여 한 줄에 출력합니다.

출력 결과

Hello, World!
  • System.out.print() 메소드를 사용하면 매개변수로 전달된 값을 문자열로 변환하여 표준 출력 스트림에 출력합니다. 줄바꿈은 수행하지 않으므로 출력 내용이 한 줄에 연속되어 출력됩니다. 따라서 위의 예시에서는 "Hello, "와 "World!"가 모두 출력된 후 커서가 이동하지 않습니다.

System.out.print() 메소드는 줄바꿈 없이 출력을 처리해야할 경우에 유용하게 사용됩니다. 다음으로는 오류 메시지를 출력하기 위해 사용되는 System.err.println() 메소드에 대해 알아보겠습니다.

2.3 System.out.printf() 메소드

System.out.printf() 메소드는 지정된 형식으로 포맷된 문자열을 출력하는 메소드입니다. 이 메소드는 System.out 스트림을 사용하여 표준 출력에 결과를 출력합니다. printf() 메소드는 C 언어의 printf() 함수와 비슷한 형식으로 문자열을 출력할 수 있습니다.

메소드 시그니처

public PrintStream printf(String format, Object... args)
  • String format: 출력할 형식을 지정하는 문자열입니다.
  • Object... args: 형식 문자열에 대입될 값입니다.

메소드 사용 예시

int age = 25;
System.out.printf("나이: %d", age);
  • 위의 예시에서는 변수 age의 값을 %d 형식 문자열로 지정하여 출력합니다.

출력 결과

나이: 25
  • System.out.printf() 메소드를 사용하면 지정된 형식에 맞추어 문자열을 출력할 수 있습니다. 위의 예시에서는 %d 형식 문자열을 사용하여 age 변수의 값을 출력합니다.

System.out.printf() 메소드는 출력할 문자열에 형식을 지정하여 원하는 형태로 출력할 수 있습니다. 주로 변수 값을 대입하여 원하는 형식으로 정확하게 출력하는 경우에 많이 사용됩니다. 다음으로는 System.err.println() 메소드를 사용하여 오류 메시지를 출력하는 방법에 대해 알아보겠습니다.

2.4 System.in과 Scanner 클래스를 활용한 입력 처리

자바에서 사용자의 입력을 처리하기 위해서는 System.in 스트림과 Scanner 클래스를 함께 활용할 수 있습니다. System.in 스트림은 표준 입력 스트림으로서, 사용자가 키보드로부터 입력한 값을 읽어올 수 있습니다. Scanner 클래스는 다양한 유형의 입력을 처리하는 유용한 도구로 사용됩니다.

Scanner 클래스의 생성자

Scanner scanner = new Scanner(System.in);
  • System.in 스트림을 매개변수로 받는 Scanner 객체를 생성합니다.

Scanner 클래스의 메소드

  • next(): 공백이나 개행 문자(엔터)를 기준으로 다음 문자열을 읽어옵니다. 공백은 무시됩니다.
  • nextInt(): 다음으로 입력될 정수 값을 읽어옵니다.
  • nextLong(): 다음으로 입력될 Long 값(큰 정수 값)을 읽어옵니다.
  • nextDouble(): 다음으로 입력될 실수 값을 읽어옵니다.
  • nextLine(): 다음으로 입력될 한 줄의 문자열을 읽어옵니다.

메소드 사용 예시

Scanner scanner = new Scanner(System.in);

System.out.print("이름을 입력하세요: ");
String name = scanner.next();

System.out.print("나이를 입력하세요: ");
int age = scanner.nextInt();

System.out.print("키를 입력하세요: ");
double height = scanner.nextDouble();

String line = scanner.nextLine();
System.out.print("자기소개를 하세요: ");
String selfIntroduction = scanner.nextLine();

scanner.close();

System.out.println("이름: " + name);
System.out.println("나이: " + age);
System.out.println("키: " + height);
System.out.println("자기소개: " + selfIntroduction);
  • 위의 예시에서는 사용자에게 이름, 나이, 키, 자기소개를 입력받아 출력하는 프로그램입니다.

출력 결과

이름을 입력하세요: John
나이를 입력하세요: 25
키를 입력하세요: 175.5
자기소개를 하세요: 안녕하세요, 저는 John입니다.
이름: John
나이: 25
키: 175.5
자기소개: 안녕하세요, 저는 John입니다.
  • Scanner 클래스의 next() 메소드는 공백이나 개행 문자(엔터)를 기준으로 다음 문자열을 읽어옵니다. 따라서 name 변수에는 공백이 없고 첫 번째 공백 이전까지의 문자열인 "John"이 저장됩니다.
  • Scanner 클래스의 nextInt() 메소드는 다음으로 입력될 정수 값을 읽어옵니다. 따라서 age 변수에는 사용자가 입력한 정수 값인 25가 저장됩니다.
  • 마찬가지로 nextDouble() 메소드는 다음으로 입력될 실수 값을 읽어옵니다. 따라서 height 변수에는 사용자가 입력한 실수 값인 175.5가 저장됩니다.
  • nextLine() 메소드는 다음으로 입력될 한 줄의 문자열을 읽어옵니다. 따라서 line 변수에는 개행 문자(엔터) 문자열이 저장됩니다. 이는 이전 nextInt() 메소드 호출 이후의 개행 문자열입니다.
  • 이후 nextLine() 메소드를 다시 호출하여 사용자의 자기소개를 읽어옵니다. 개행 문자 이후의 문자열을 읽기 위해서입니다. 입력받은 자기소개의 문자열은 selfIntroduction 변수에 저장됩니다.
  • Scanner 클래스의 close() 메소드를 호출하여 입력을 처리하는 스캐너를 닫습니다.
  • 마지막으로 입력 받은 값들을 출력하여 확인합니다.

Scanner 클래스는 사용자의 입력을 받아 처리하는 경우에 매우 유용한 클래스입니다. 다음으로는 자바의 기본 데이터 타입에 대해서 알아보겠습니다.

2.5 자바의 기본 데이터 타입

자바는 기본적으로 8개의 기본 데이터 타입을 제공합니다. 이러한 기본 데이터 타입은 다양한 유형의 값을 저장하고 조작하기 위해 사용됩니다.

기본 데이터 타입 종류

  1. 정수형 타입

    • byte: 1바이트를 저장할 수 있는 정수 타입입니다. 범위는 -128부터 127까지입니다.
    • short: 2바이트를 저장할 수 있는 정수 타입입니다. 범위는 -32,768부터 32,767까지입니다.
    • int: 4바이트를 저장할 수 있는 정수 타입입니다. 범위는 -2,147,483,648부터 2,147,483,647까지입니다.
    • long: 8바이트를 저장할 수 있는 정수 타입입니다. 범위는 -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807까지입니다.
  2. 실수형 타입

    • float: 4바이트를 저장할 수 있는 실수 타입입니다. 범위는 대략 ±3.40282347 x 10^38입니다.
    • double: 8바이트를 저장할 수 있는 실수 타입입니다. 범위는 대략 ±1.7976931348623157 x 10^308입니다.
  3. 문자형 타입

    • char: 2바이트를 저장할 수 있는 문자 타입입니다. 유니코드 문자를 저장할 수 있습니다.
  4. 논리형 타입

    • boolean: true 또는 false 값을 저장할 수 있는 논리 타입입니다.

자바의 기본 데이터 타입은 변수를 선언하고 값을 할당할 때 사용됩니다. 이러한 기본 데이터 타입을 사용하여 다양한 연산을 수행하고 조건을 판별하는 등의 작업을 할 수 있습니다.

다음으로는 연산자에 대해 알아보겠습니다.

3. System 클래스의 주요 기능 설명

System 클래스는 자바 프로그램의 실행 환경과 관련된 기능을 제공하는 클래스입니다. 이 클래스는 static 메소드들로 구성되어 있으며, 다양한 용도로 사용될 수 있습니다.

System 클래스의 주요 메소드

  1. out 객체

    • System.out.println(값): 콘솔에 값을 출력합니다. 출력 후 자동으로 개행 문자를 추가합니다.
    • System.out.print(값): 콘솔에 값을 출력합니다. 개행 문자를 추가하지 않습니다.
    • System.out.printf(포맷, 값): 지정된 포맷으로 값을 형식화하여 콘솔에 출력합니다.
  2. in 객체

    • System.in: 표준 입력 스트림을 나타내는 InputStream 객체입니다.
    • Scanner scanner = new Scanner(System.in): System.in을 입력으로 받는 Scanner 객체를 생성합니다.
  3. currentTimeMillis() 메소드

    • System.currentTimeMillis(): 현재 시간을 밀리초 단위로 반환합니다. 보통 프로그램의 성능을 측정하는 용도로 사용됩니다.
  4. arraycopy() 메소드

    • System.arraycopy(원본 배열, 원본 시작 위치, 대상 배열, 대상 시작 위치, 복사할 길이): 배열의 요소들을 복사합니다. 원본 배열에서 시작 위치부터 복사할 길이만큼의 요소들을 대상 배열에 복사합니다.
  5. exit() 메소드

    • System.exit(종료 코드): 프로그램을 강제로 종료합니다. 종료 코드는 정수로 지정하며, 0은 정상 종료를 의미하고 그 외의 값은 비정상 종료를 의미합니다.
  6. getProperty() 메소드

    • System.getProperty(속성 이름): 지정된 시스템 속성의 값을 반환합니다. 주로 시스템의 정보를 얻어오는데 사용됩니다.

이 외에도 System 클래스는 다양한 용도로 활용될 수 있으며, 프로그램의 실행 환경과 관련된 다른 기능들도 제공합니다. 자바 개발을 하다가 필요한 경우 System 클래스의 메소드들을 활용해보세요.

다음으로는 조건문과 반복문에 대해서 알아보겠습니다.

3.1 System 클래스의 시간 관련 메소드 (currentTimeMillis, nanoTime 등)

System 클래스는 현재 시간과 관련된 메소드를 제공하여 시간을 측정하고 조작하는 기능을 제공합니다. 주로 프로그램의 성능 측정, 시간에 따라 작업을 제어하는 등의 용도로 사용됩니다. 이번에는 currentTimeMillis()nanoTime() 메소드에 대해 알아보겠습니다.

currentTimeMillis() 메소드

currentTimeMillis() 메소드는 현재 시간을 밀리초 단위로 반환합니다. 이는 프로그램의 시작 시점으로부터 경과한 시간을 알 수 있게 해주는 메소드입니다. 보통 프로그램의 성능 측정이나 작업 시간을 측정하기 위해 사용됩니다.

long startTime = System.currentTimeMillis(); // 현재 시간을 시작 시간으로 저장

// 시간을 측정하고자 하는 작업

long endTime = System.currentTimeMillis(); // 현재 시간을 끝 시간으로 저장
long elapsedTime = endTime - startTime; // 경과 시간 계산
System.out.println("작업 시간: " + elapsedTime + "밀리초");

nanoTime() 메소드

nanoTime() 메소드는 현재 시간을 나노초 단위로 반환합니다. 이는 보다 정밀한 시간 측정을 위해 사용되며, currentTimeMillis()보다 더 작은 단위를 제공합니다. 나노초는 다른 시스템에서는 밀리초로 표현될 수도 있기 때문에 상대적인 시간 측정에 사용되어야 합니다.

long startTime = System.nanoTime(); // 현재 시간을 시작 시간으로 저장

// 시간을 측정하고자 하는 작업

long endTime = System.nanoTime(); // 현재 시간을 끝 시간으로 저장
long elapsedTime = endTime - startTime; // 경과 시간 계산
System.out.println("작업 시간: " + elapsedTime + "나노초");

currentTimeMillis()nanoTime() 메소드는 각각 밀리초와 나노초 단위로 시간을 측정할 수 있게 해줍니다. 작업의 성능 측정이나 정밀한 시간 측정이 필요한 경우에 유용하게 사용할 수 있습니다.

다음으로는 조건문에 대해서 알아보겠습니다.

3.2 System 클래스의 환경 관련 메소드 (getProperties, getProperty 등)

System 클래스는 프로그램이 실행되고 있는 시스템의 환경 정보를 제공하기 위한 메소드들을 제공합니다. 이를 통해 운영체제, 파일 시스템, 시스템 속성 등의 정보를 얻을 수 있습니다. 주로 시스템의 정보를 확인하거나 프로그램의 실행 환경을 설정하는 용도로 사용됩니다.

getProperties() 메소드

getProperties() 메소드는 시스템의 모든 속성을 Properties 객체로 반환합니다. Properties 객체는 키-값으로 구성된 컬렉션이며, 시스템의 속성 이름과 해당 값으로 구성되어 있습니다. 이 메소드를 사용하면 시스템의 모든 속성에 대한 자세한 정보를 얻을 수 있습니다.

Properties properties = System.getProperties(); // 시스템의 모든 속성을 Properties 객체로 얻음
Set<String> propertyNames = properties.stringPropertyNames(); // 모든 속성 이름을 가져옴

for (String propertyName : propertyNames) {
    String propertyValue = properties.getProperty(propertyName); // 속성 이름에 해당하는 속성 값을 가져옴
    System.out.println(propertyName + " : " + propertyValue);
}

getProperty() 메소드

getProperty() 메소드는 지정된 속성의 값을 반환합니다. 속성 이름을 인자로 받아 해당 속성의 값을 반환하는데, 속성 값이 없으면 null을 반환합니다. 이 메소드를 사용해 특정한 속성의 값을 얻을 수 있습니다.

String osName = System.getProperty("os.name"); // 운영체제의 이름을 반환
String javaVersion = System.getProperty("java.version"); // 자바의 버전을 반환

System.out.println("운영체제: " + osName);
System.out.println("자바 버전: " + javaVersion);

getProperties()getProperty() 메소드를 사용하면 시스템의 속성 값을 확인하고 프로그램의 실행 환경을 판단하는 데 도움이 됩니다. 이를 통해 다양한 운영체제나 자바 버전에서도 일관적인 동작을 할 수 있는 프로그램을 작성할 수 있습니다.

다음으로는 자바의 조건문에 대해서 알아보겠습니다.

3.3 System 클래스의 종료 관련 메소드 (exit, gc 등)

System 클래스는 프로그램의 종료와 관련된 몇 가지 메소드를 제공합니다. 이러한 메소드들은 프로그램을 강제로 종료하거나 가비지 컬렉션을 수행하는 데 사용될 수 있습니다.

exit() 메소드

exit() 메소드는 프로그램을 즉시 종료합니다. 이 메소드는 정상적인 종료나 비정상적인 종료 상황에서 호출할 수 있으며, 실행 중인 모든 스레드를 중단시키고 프로그램을 완전히 종료합니다.

System.out.println("프로그램을 종료합니다.");
System.exit(0); // 프로그램을 종료하고 상태 코드 0을 반환

exit() 메소드는 현재 실행 중인 프로세스를 완전히 종료시키므로, 주의해야 합니다. 만약 exit() 메소드가 호출되면 이후의 코드는 실행되지 않습니다.

gc() 메소드

gc() 메소드는 가비지 컬렉션(gc)을 수행하도록 시스템에 요청합니다. 가비지 컬렉션은 더 이상 사용되지 않는 객체를 메모리에서 해제하는 프로세스입니다. gc() 메소드는 가비지 컬렉션을 즉시 실행하지 않고, 가비지 컬렉션을 수행하도록 시스템에 요청하는 역할을 합니다.

System.gc(); // 가비지 컬렉션을 수행하도록 시스템에 요청

gc() 메소드는 자바 가상 머신(JVM)에서 가비지 컬렉션을 수행하도록 요청하지만, 정확한 타이밍은 구현에 따라 다를 수 있습니다. 때문에 gc() 메소드를 호출해도 가비지 컬렉션이 즉시 실행되지 않을 수도 있습니다.

System 클래스의 종료 관련 메소드들은 프로그램을 강제로 종료하거나 가비지 컬렉션을 실행하는 등의 작업에 사용될 수 있습니다. 주의해서 사용해야 하며, 적절한 시점에 호출해야 원하는 동작을 수행할 수 있습니다.

다음으로는 자바의 예외처리에 대해서 알아보겠습니다.