자바 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 |
댓글