Languages/Java

[HUFS/객체지향프로그래밍] #10 기본 API 클래스

성중 2023. 1. 6. 01:09

자바 API 도큐먼트

java.lang 패키지의 주요 클래스와 용도 (java.base > java.lang > Classes)

공식 문서에서 자주 사용되는 클래스 및 인터페이스 API를 찾아 사용🔽

 

Overview (Java SE 19 & JDK 19)

This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP

docs.oracle.com

 

Object 클래스

모든 클래스는 Object 클래스의 자식 or 자손 클래스

equals() 메소드의 매개 변수 타입은 Object인데, 모든 객체는 Object로 자동 타입 변환될 수 있기 때문에 모든 객체가 인수로 대입될 수 있다

 

두 객체가 논리적으로 동일한지 판단 (==와 동일 결과)
매개 값이 기준 객체와 동일 타입인지 먼저 확인하도록 재정의 (instanceof 연산자)

hashCode() 메소드는 객체마다 다른 값을 가지는 메모리 번지로 해시 코드를 만들어 반환한다

 

컬렉션 프레임워크(HashSet, HashMap, Hashtable)에서 객체가 동등한지 비교할 때 사용
논리적으로 동등한 객체일 경우 동일한 해시 코드 반환하도록 equals() + hashCode() 재정의

toString() 메소드는 객체를 문자열로 표현한 값인 객체의 문자 정보를 반환한다

 

[클래스이름@16진수해시코드]로 구성

  • java.util 패키지의 Date 클래스는 toString()을 재정의해 현재 시스템의 날짜와 시간 정보 반환
  • String 클래스는 toString()을 재정의해 저장하고 있는 문자열을 반환
  • System.out.println() 메소드는 인수가 객체라면 자동으로 toString()을 적용해 출력

 

System 클래스

System 클래스는 모두 정적 필드와 메소드로 구성되며 시스템 관련 기능을 지원한다

 

JVM을 강제 종료하는 exit() 메소드
현재 시간을 밀리/나노 세컨드 단위로 반환하는 currentTimeMillis() / nanoTime() 메소드

Class 클래스

자바는 기본적으로 클래스와 인터페이스의 메타 데이터를 Class 클래스로 관리한다

 

Class 객체를 얻는 방법 (getClass(), forName())
Class 객체가 가지고 있는 경로로 리소스 절대 경로를 얻을 수 있다 (getPath())

String 클래스

직접 String 객체를 생성
System.in.read() 메소드는 키보드 입력 내용을 바이트 배열에 저장하고 바이트 수를 반환
String 메소드
charAt() 메소드는 매개값으로 주어진 인덱스의 문자를 추출해 반환
equals() 메소드는 두 문자열이 동일한지 비교 (== 연산자는 객체 번지를 비교)
getBytes() 메소드는 문자열을 바이트 배열로 변환 (네트워크 전송 시 암호화)
바이트 배열을 다시 문자열로 디코딩 (시스템 기본 문자셋)
시스템 기본 문자셋이 아닌 다른 문자셋으로 인코딩 된 경우 해당 문자셋으로 지정해 디코딩
indexOf() 메소드는 주어진 문자열이 시작되는 인덱스 반환 (없으면 -1 반환)
length() 메소드는 문자열의 길이(문자의 수)를 반환
replace() 메소드는 첫 번째 문자열을 찾아 두 번째 문자열로 대치한 새로운 문자열 생성 및 반환
substring() 메소드는 주어진 인덱스에서 문자열을 추출해 반환
toLowerCase() / toUpperCase() 메소드는 새로운 소/대문자로 바꾼 문자열을 생성 및 반환
trim() 메소드는 앞뒤 공백을 제거한 문자열을 생성 및 반환
valueOf() 메소드는 기본 타입 값을 문자열로 반환

Wrapper 클래스

기본 타입의 값을 내부에 두고 외부에서 변경할 수 없도록 포장된 객체를 Wrapper 객체라 한다

 

기본 타입과 포장 클래스

기본 타입의 값을 포장 객체로 만드는 과정을 박싱(Boxing)이라고 하며, 포장 객체에서 기본 타입의 값을 얻어내는 과정을 언박싱(Unboxing)이라 한다

 

생성자를 이용해 기본 타입 값이나 문자열로 박싱
생성자를 이용하지 않고 정적 valueOf() 메소드로 박싱
기본 타입 값 언박싱
포장 클래스 타입에 기본 값 / 기본 타입에 포장 객체가 대입되는 경우 자동 박싱 / 언박싱
문자열을 기본 타입 값으로 바로 변환
포장 객체 값의 비교

Math 클래스

java.lang.Math 클래스는 수학 계산에 사용되는 다양한 메소드를 제공한다

 

정적 메소드로 Math 클래스 바로 사용 가능
랜덤 값 얻기 예시

Date / Calendar 클래스

Date / Calendar 클래스
Date 클래스 활용
Calendar 클래스 활용