본문 바로가기
자바

자바 System 클래스

by 복제비 2022. 1. 6.

자바  System 클래스

 

System 클래스 개요

 

System 클래스는 실행시간 환경과 관련된 속성과 메서드를 제공합니다.

 

java.lang.System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있습니다.

 

System 클래스모든 필드메서드static 으로 구성되어 있습니다.

 

System 클래스의 클래스 변수 in 과 out 은 입출력 패키지의  InputStream 클래스와  PrintStream 클래스의 객체를 지정합니다.

 

System 클래스의 주요 메서드

 

① static void  arraycopy(Object  source, int  sourceStart, Object  target, int  targetStart  int size)

배열복사하는 메서드입니다.  source 와 target 은 배열의 이름이고, sourceStart 와 targetStart 는 복사가 시작될 위치이고, size 는 복사될 배열의 크기를 의미합니다.

 

② static  long  currentTimeMillis( )
현재 시간을 밀리초로 반환합니다.

③ static  void  exit(int exitcode)
현재 수행중응용 프로그램끝내는 메서드입니다. 
exit 메소드를 사용하여 JVM 을 강제로 종료시킬 수 있습니다.

exitcode 에 따라 메시지를 나타낼 수 있습니다. exitcode 를 0으로 지정하면 일반적인 정상 종료를 의미합니다.


④ static  void  gc( )
쓰레기 수집(garbage collection)을 시작시키는 메서드입니다.

자바는 개발자가 메모리를 직접 코드로 관리하지 않고 JVM이 알아서 자동으로 관리합니다.
JVM은 메모리가 부족할 때와 CPU가 한가할 때에 쓰레기 수집기를 실행시켜 사용하지 않는 객체를 자동으로 제거합니다.  
개발자가 직접 쓰레기를 없앨 수는 없지만 빨리 없애달라고 요청은 할수 있습니다.

 

System.gc( );

 

static  void  getProperty( )

getProperty( ) 메서드는 JVM이 시작할 때 자동 설정되는 시스템속성값을 말하는 시스템 프로퍼티(System Property)를 읽어주는 메서드입니다. 

 

System 클래스 실습 프로그램

 

public  class  SystemTest {

public static void main(String[ ] args) {
long start, end;
char[ ] src = { 'A', 'B', 'C', 'D', 'E' };

char[ ] dest = { '1', '2', '3', '4', '5' };

         
start = System.currentTimeMillis( );   // 현재 시간을 밀리초로 반환함

System.out.println("현재 시간 : " + start);

System.out.println("500,000회의 Loop를 반복 시작" );

for(int i=0; i < 500000; i++) ;

System.out.println("500,000회의 Loop를 반복 종료");

end = System.currentTimeMillis( ); 

System.out.println("반복 종료 시간 : " + end);

System.out.println("반복에 소요된 시간 : " + ( end -start ));

     
System.out.println("src=" + new  String(src));

System.out.println("dest=" + new  String(dest));

System.arraycopy(src, 0, dest, 0, src.length);  // arraycopy 메서드로 배열을 복사함

System.out.println(" src= " + new  String(src));

System.out.println(" dest= " + new String(dest));

 

System.out.println("java.version=" + System.getProperty("java.version"));
// Java Runtime  Environment 버젼

System.out.println("java.vendor=" + System.getProperty("java.vendor"));

// Java Runtime Environment 벤더

System.out.println("java.vendor.url=" + System.getProperty("java.vendor.url"));

// Java Runtime Environment 벤더 url

System.out.println("java.home=" + System.getProperty("java.home"));

// Java Runtime Environment 설치 디렉토리

 

System.out.println("java.vm.specification.version=" + System.getProperty("java.vm.specification.version"));
// Java 가상 머신 사양

System.out.println("java.vm.specification.vendor=" + System.getProperty("java.vm.specification.vendor"));
// Java 가상 머신 사양 벤더

System.out.println("java.vm.specification.name=" + System.getProperty("java.vm.specification.name"));
// Java 가상 머신 사양명

System.out.println("java.vm.version=" + System.getProperty("java.vm.version")); 

// Java 가상 머신 구현 버젼

System.out.println("java.vm.name=" + System.getProperty("java.vm.name"));

// Java 가상 머신 구현명

 

System.out.println("java.specification.version=" + System.getProperty("java.specification.version"));

// Java Runtime Environment 의 사양 버젼

System.out.println("java.specification.name=" + System.getProperty("java.specification.name"));

// Java Runtime Environment 의 사양명

System.out.println("java.class.version=" + System.getProperty("java.class.version"));

// Java 클래스의 형식의 버젼 번호

System.out.println("java.class.path=" + System.getProperty("java.class.path"));

// Java 클래스 path

System.out.println("java.library.path=" + System.getProperty("java.library.path"));

// 라이브러리 로드 시에 검색하는 path 의 리스트

System.out.println("java.io.tmpdir=" + System.getProperty("java.io.tmpdir"));

// 디폴트 임시 파일의 패스

 

System.out.println("os.name=" + System.getProperty("os.name"));

// operating system 명

System.out.println("os.arch=" + System.getProperty("os.arch"));

// operating system 아키텍쳐

System.out.println("os.version=" + System.getProperty("os.version"));

// operating system 버젼

 

System.out.println("user.name=" + System.getProperty("user.name"));

// 사용자명

System.out.println("user.home=" + System.getProperty("user.home"));

// 사용자 홈 디렉토리

System.out.println("user.dir=" + System.getProperty("user.dir"));

// 사용자 현재의 작업 디렉토리
}
}

 

 

'자바' 카테고리의 다른 글

자바 Math 클래스  (0) 2022.01.08
자바 Class 클래스  (0) 2022.01.07
자바 스레드 사이의 통신  (0) 2022.01.01
자바 동기화(Synchronization)  (0) 2021.12.29
자바 스레드 우선순위 지정  (0) 2021.12.28

댓글