본문 바로가기
Java

Java_Object 클래스, Java API

by 유서담 2023. 11. 14.

API(Application Programming Interface)

 

  • 응용프로그래밍 인터페이스
  • 프로그램을 작성하기 위해서 사용하는 라이브러리들의 기능에 대한 사양

 

Java API

  • 자바 프로그램에서 제공하는 라이브러리의 집합
  • 개발자들이 자바 라이브러리의 다양한 기능을 쉽게 이해하고 구현에 활용할 수 있도록 API에 대한 상세한 문서를 제공한다

 

 Java의 모듈 ( 모듈은 관련있는 패키지들의 묶음)

 

 

Java의 주요 모듈

모듈의 종류 설명
java.base 자바의 핵심 API를 제공하는 모듈.
자바의 가장 기본적인 클래스들을 포함하고 있다
java.sql 데이터베이스 엑세스 관련 API를 제공하는 모듈
java.xml XML 데이터를 처리하기 위한 API를 제공하는 모듈
XML은 시스템간의 데이터 교환에 사용되는 데이터 작성 방식
java.desktop 데스크탑용 GUI 애플리키에션 개발을 위한 API를 제공하는 모듈
스윙(Swing), AWT와 같은 GUI 개발 툴킷을 포함하고 있다
java.logging 로깅 기능을 제공하는 API
java.security 보안/암호화의 관련된 API를 제공

 

 

 

java.base 모듈의 주요패키지

 

  • java.lang
    • 자바 프로그램 언어의 핵심 클래스를 포함하고 있는 패키지
    • Object, Class, System, Thread와 같은 클래스
    • 기본 데이터타입의 Wrapper 클래스(Integer, Long, Double, Boolean 등)
    • 예외처리 관련 클래스
  • java.util
    • 다양한 유틸리티 클래스와 인터페이스를 포함하고 있는 패키지다
    • 콜렉션 프레임워크(자료궂 프레임워크), 날짜와 시간관련 API, 다양한 유틸리티 클래스
  • java.io
    • 입출력 관련 클래스와 인터페이스를 제공하는 패키지다.
    • 파일입출력, 직렬화 관련 클래스
  • java.nio
    • 논블로킹 입출력 관련 클래스를 제공하는 패키지다.
  • java.net
    • 네크워크 관련 클래스와 인터페이스를 제공하는 패키지다.
    • URL, URI, Socket, ServerSocket과 같은 네트워크 프로그램 개발 관련 클래스 제공
  • java.math
    • 정밀한 숫자 계산에 활용되는 클래스를 제공하는 패키지다
    • BigDecimal, BigInteger등의 클래스를 제공한다

 

Object 클래스

 

  • 배열을 포함한 모든 객체의 최상위 부모클래스다.
  • 명시적으로 extends를 사용해서 부모클래스를 지정하지 않으면 무조건 extends Object로 간주된다
  • Object의 모든 메소드는 모든 클래스가 상속받는다
  • 모든 객체는 Object의 메소드를 사용할 수 있다
  • Object에는 객체와 관련된 필수 기능들이 구현되어 있다

 

Object 클래스의 주요 메서드

 

  • boolean equals(Object obj)
    • 현재 객체와 전달받은 객체가 동일한 객체인지 여부를 반환한다
    • 객체들의 주소값(참조값)을 비교한다 ( 동일성비교)
    • 재정의 가능 ( Ex : 두 객체가 같은 값(내용)을 가지고 있으면 같은 객체로 판단하게 하기 ) 
  • int hashCode()
    • 현재 객체의 해시코드값을 반환한다
    • 재정의 가능
  • String toString()
    • 현재 객체에 대한 간단한 정보를 제공한다
    • 클래스이름@16진수해시코드
    • 재정의 가능
  • Class<?> getClass
    • 현재 객체에 대한 설계도(클래스정보) 정보를 제공한다
  • Object clone()
    • 현재 객체를 복제한 복사본을 생성해서 제공한다
    • clone() 메소드는 접근제어자가 protected

 

 

System 클래스

 

  • 자바실행환경이 설치된 시스템(컴퓨터)에 대한 유용한 값과 객체를 제공하는 클래스다.
  • java.lang 패키지에 속해있다
  • System 클래스의 모든 변수와 메소드는 클래스 변수, 클래스 메소드이다.
  • 제공하는 것
    • 표준입력장치, 표준출력장치, 표준에러출력장치와 연결된 스트림
    • 컴퓨터의 환경변수, 프로퍼티 값을 제공한다
    • 컴퓨터의 현재시간정보를 제공한다

 

System 클래스의 주요메소드

 

 

long System.currentTimeMillis()

  • 현재 시간에 대한 유닉스 타임을 제공한다.
  • 유닉스 타임 : 1970년 1월 1일 00:00:00 부터 지금까지의 시간을 1/1000초 단위로 표현한 값이다
 long unixtime = System.currentTimeMillis();	// 13자리 정수가 획득된다.

 

 

void System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

  • 배열의 요소를 다른 배열에 복사한다
  • 매개변수
    • sec : 원본배열
    • srcPos : 원본배열의 복사시작위치
    • dest : 대상배열
    • destPos : 대상배열의 저장시작위치
    • length : 복사할 요소의 갯수

 

int[] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  int[] arr2 = new int[20];
  int[] arr2 = new int[20];
  
  // 원본배열의 0번째부터 10개를 arr2의 0번째 위치에 복사하기
  System.arraycopy(arr1, 0, arr2, 0, 10);
  // arr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  
  // 원본배열의 4번째부터 5개를 arr2의 0번째 위치에 복사하기
  System.arraycopy(arr1, 4, arr2, 0, 5);
  // arr2 = {5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

 

 

arraycopy 메소드 사용 및 복사결과

 

 

 

String System.getProperty(String name)

  • 운영체제의 설정정보를 조회한다
// 사용자의 홈 디렉토리 경로를 반환한다.
  String value1 = System.getProperty("user.dir");
  
  // 시스템의 줄바꿈 문자를 반환한다.
  String value2 = System.getProperty("line.separator");
  
  // 시스템의 디렉토리 경로 구분문자를 반환한다.
  String value3 = System.getProperty("file.separator");

 

 

String System.getenv(String name)

  • 시스템의 환경변수 설정값을 조회한다
String value1 = System.getenv("JAVA_HOME");
  System.out.println(value1);	// "C:\Program Files\Java\jdk-11.0.8" 가 출력됨

 

 

String System.getProperty 메소드와 String System.getenv 메소드 사용 및 출력결과

'Java' 카테고리의 다른 글

Java_Wrapper 클래스  (0) 2023.11.16
Java_String 클래스  (0) 2023.11.14
Java_접근제어자, 내부클래스(oop)  (0) 2023.11.13
Java_인터페이스(oop)  (1) 2023.11.10
Java_오버라이딩, 추상화, 다형성(oop)  (0) 2023.11.09