본문 바로가기

프로그래밍/기타

System 클래스

◈ System 클래스 (java.lang)

◇ 종료
  System.exit(0);  // 정상종료
  System.exit(1) //  비정상종료
  System.exit(-1) //  익셉션 발생 비정상 종료

◇ 입출력 멤버(static)

   InputStream in : 표준 입력 스트림(키보드)
   PrintStream out : 표준 출력 스트림(화면)
   PrintStream err : 표준 에러 출력 스트림(화면) - 표준 출력스트림과 사용은 동일하나, err출력시에만 사용
                                                                 
◇ 키보드 입력받기
  InputStream은 바이트 단위 스트림이므로, 한글 입력 시 제대로 받기 힘듬. (자바는 기본이 유니코드이기 떄문에 2바이트 단위로 받음) 따라서 바이트 스트림을 문자스트림으로 바꾸는 기능을 하는 InputStreamReader 클래스와 함께 사용. (java.io)

   InputStreamReader reader = new InputStreamReader(System.in);
   char ch = (char) reader.read();

    Line단위 입력 받고자 할 때
   InputStreamReader reader = new InputStreamReader(System.in);
   BufferedReader bReader = new BufferedReader(reader);
   String str = bReader.readLine();


 ◇ gc 메소드
   참조가 없어진 객체에 대해서 메모리 공간을 확보하기 위해서 자바에서는 가비지콜렉터가 참조가 없어진 메모리 공간을 알아서 처리하여 메모리 공간을 확보한다. 이 가비지콜렉터의 작동은 JVM에서 알아서 실행하게 되는데, 이러한 JVM 시점을 최대한 빨리 하기 위해서 System.gc(); 메소드를 사용하면, 메소드 호출 후 빠른 시간 내에 가비지콜렉터가 작동하게 된다. 대신 이 메소드를 호출했다고해서 바로 작동을 하는 것은 보장되지 않는다. 단순히 빠른 시간 내에 작동하게 되도록 가비지콜렉터의 우선순위를 높여주는 역할을 하는 것 뿐이다.

◇ 배열 일괄 복사
  arrarycopy(Object src, int srcPos, Object dest, int destPos, int length)

◇ 현재 시각 불러오기
  주로 어떤 작업의 시작 전과 종료 후에 호출하여 해당 시간 차를 계산하여 프로그램 성능측정에 이용한다.
  long time = System.currentTimeMills();