종류 - 클래스
모듈 - java.base
패키지 - java.lang
상속
- java.lang.Object
- java.lang.System
내부 클래스
- static interface java.lang.System.Logger
- static class java.lang.System.LoggerFinder
필드
- static final PrintStream err - 표준 오류 출력 스트림
- static final InputStream in - 표준 입력 스트림
- static final PrintStream out - 표준 출력 스트림
메소드 (구상 메소드) (자주 사용되지 않음)
- static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) - src배열의 srcPos위치부터 dest배열의 destPos위치로 length만큼 복사한다.
- static String clearProperty(String key) - setProperty로 설정된 속성을 삭제한다.
- static Console console() - 가능한 경우, 현재 자바 가상머신의 Console 오브젝트를 반환한다.
- static long currentTimeMillis() - 현재 시간을 밀리세컨드로 반환한다.
- static void exit(int status) - 자바 가상머신을 종료한다.
- static void gc() - 가비지 컬렉션을 실행한다. (불필요한 메모리 정리)
- static Map<String,String> getenv() - Map형태의 시스템 환경변수를 받아온다. (이 Map을 이용해 시스템 환경변수를 수정할 순 없다.)
- static String getenv(String name) - 시스템 환경변수를 받아온다.
- static System.Logger getLogger(String name) - name을 기준으로 Logger 인스턴스를 받아온다.
- static System.Logger getLogger(String name, ResourceBundle bundle) - name을 기준으로 Logger 인스턴스를 받아온다.
- static Properties getProperties() - 현재 시스템 속성들을 불러온다.
- static String getProperty(String key) - 현재 시스템 속성을 불러온다.
- static String getProperty(String key, String def) - 현재 시스템 속성을 불러온다.
- static SecurityManager getSecurityManager() - 더 이상 사용되지 않으며, 향후 삭제될 Security Manager와 함께 사용된다.
- static int identityHashCode(Object x) - 인자로 주어진 Object가 hashCode()메소드를 오버라이딩했는지에 상관 없이, 기본 hashCode()메소드의 기능을 수행한다. (Object식별용 hashCode메소드)
- static Channel inheritedChannel() - 현재 자바 가상머신이 상속받은 Channel을 리턴한다.
- static String lineSeparator() - 개행문자(\n)를 리턴한다. (OS가 달라도 작동하게 하기 위한 호환성 전용) (getProperty(“line.seperator”)와도 같음.)
- static void load(String filename) - 주어진 경로의 파일의 네이티브 라이브러리를 불러온다. (dll이나 so의 확장자를 제외하여야 함.)
- static void loadLibrary(String libname) - 주어진 이름의 네이티브 라이브러리를 불러온다. (환경변수 path의 경로를 살펴봄, 위와 같이 확장자 제거 필수)
- static String mapLibraryName(String libname) - 네이티브 라이브러리의 플랫폼별 라이브러리 이름을 출력한다.
- static long nanoTime() - 현재 자바 가상머신의 고성능 시간값을 나노초로 반환한다.
- static void runFinalization() - Finalization이 가능한 객체의 Finalization을 수행한다. (더이상 사용되지 않는 클래스의 finalize메소드를 사용하는것. finalize메소드는 메모리 할당이 사라지기 직전에 호출되는 메소드다.)
- static void setErr(PrintStream err) - 표준 오류 출력 스트림을 재할당한다. (새로운 필드로 변경)
- static void setIn(InputStream in) - 표준 입력 스트림을 재할당한다. (새로운 필드로 변경)
- static void setOut(PrintStream out) - 표준 출력 스트림을 재할당한다. (새로운 필드로 변경)
- static void setProperties(Properties props) - Properties형태의 시스템 속성들을 설정한다.
- static String setProperty(String key, String value) - 시스템 속성을 설정한다.
- static void setSecurityManager(SecurityManager sm) - 더 이상 사용되지 않으며, 향후 삭제될 Security Manager와 함께 사용된다.
자바로 프로그램을 만들어 본 사람이라면 한번쯤은 사용해 봤을 클래스, java.lang은 기본적으로 임포트 되어 있으므로 보통 System.out.println(java.lang.String)으로만 봤을것이다.
java.lang.System.out은 java.io.PrintStream클래스를 이용해 만든 필드이며, java.lang.System.err과 동일하다는것을 알게 되었다.
java.lang.System.out을 이용하지 않고도 java.io.PrintStream out; out.println(java.lang.String)을 이용해 출력이 가능한 것 같다.