코린이
혼공자 Chapter11 API 본문
11_1 java.lang 패키지
Object | 클래스의 최상위 클래스로 사용 |
System | 표준 입력 장치로부터 데이터를 입력받을 때 사용 표준 출력 장치로 출력하기 위해 사용 |
Class | 클래스를 메모리로 로딩할때 사용 |
Wrapper(Byte, Short, Character, Integer, Float 등) | 기본 타입의 데이터를 갖는 객체를 만들 때 사용 문자열을 기본 타입으로 변환할때 사용 |
Math | 수학 함수를 이용할 때 사용 |
API
API는 라이브러리라고 부르기도 하고, 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말한다.
자바 API 도큐먼트
자바 표준 API 중에 우리가 원하는 API를 쉽게 찾아 HTML로 보여준다.
Object
- 자바의 최상위 부모 클래스에 해당
- 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스이다.
객체 비교(equals())
// equals 메소드
public boolean equals(Object obj){ ... }
Object obj1 = new Object();
Object obj2 = new Object();
boolean result = obj1.equals(obj2); // obj1는 기준 객체이고 obj2는 비교 객체
boolean result = (obj1 == obj2);
위의 boolean result는 결과가 서로 동일하게 나온다.
- equals() 메소드는 두 객체를 비교해서 논리적으로 동등하면 true를 리턴 그렇지 않으면 false를 리턴
- equals() 메소드를 재정의할 때에는 매개값이 기준 객체와 동일한 타입의 객체인지 먼저 확인해야 한다.
객체 해시코드(hashCode())
- 객체를 식별하는 하나의 정수값을 말한다.
- 객체의 메모리 번지를 이용해서 해시코드를 만들어 리턴하여 객체마다 다른 값을 가지고 있다.
객체 문자 정보(toString())
- 객체의 문자 정보를 리턴한다.
- 객체의 문자 정보란? 객체를 문자열로 표현한 값을 말한다.
- 기본적으로 Object 클래스의 toString() 메소드는 “클래스이름 @16진수 해시코드”로 구성된 문자 정보를 리턴한다.
System 클래스
- 운영체재의 일부 기능을 이용할 수 있다.
- System 클래스의 모든 필드와 메소드는 정적 필드와 정적 메소드로 구성
-
현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 한다. System.exit(0);는 강제 종료하여 System.out.println("마무리 코드");코드가 출력되지 않는다.Sysyem.exit(0) // exit()는 int 매개값을 지정하도록 되어 있다(이 값을 종료 상태값이라고 함)
long time = System.currentTimeMIllis(); // 밀리세컨드 단위 long time = System.nanoTime(); // 나도세컨드 단위
- 현재 시각 읽기(currentTimeMIllis(), nanoTime())
// exit()메소드
package week11;
public class ExitEXample {
public static void main(String[] args){
for(int i = 0; i <10; i++){
if (i == 5) {
System.exit(0);
}
}
System.out.println("마무리 코드");
}
}
프로그램 종료(exit())
Class 클래스
클래스와 인터페이스의 메타 데이터를 java.lang 패키지에 소속된 Class 클래스로 관리
class 객체 얻기(get.Class(), forName())
// 클래스로부터 얻는 방법
Class clazz = 클래스이름.class // 1
Class clazz = Class.forName("패키지...클래스이름") // 2
첫 번째와 두 번째 방법은 객체 없이 클래스 이름만 가지고 Class 객체를 얻는 방법이다.
// 객체로부터 얻는 방법
Class clazz = 참조변수.getClass(); // 3
세 번째 방법은 클래스로부터 객체가 이미 생성되어 있는 경우이다.
클래스 경로를 활용해서 리소스 절대 경로 얻기
String file1Path = clazz.getResource("상대경로.file").getPath();
String 메소드
문자열의 추출, 비교, 찾기, 분리, 변환 등 같은 다양한 메소드를 가지고 있다.
리턴 타입 | 메소드 이름(매개 변수) | 설명 |
char | char A(int index) | 특정 위치의 문자를 리턴한다. |
boolean | equals(Object anObject) | 두 문자열을 비교한다. |
byte[] | getBytes() | byte[]로 리턴한다. |
byte[] | getBytes(Charset charset()) | 주어진 문자셋으로 인코딩한 btye[]로 리턴한다. |
int | indexOf(String str) | 문자열 내에서 주어진 문자열의 위치를 리턴한다. |
int | length() | 총 문자의 수를 리턴한다. |
String | replace() | target 부분을 replacement로 대치한 새로운 문자열을 리턴 |
String | substring() | beginlndex 위치에서 끝까지 잘라낸 새로운 문자열을 리턴 |
String | substring() | beginIndex 위치에서 endIndex 전까지 잘라낸 새로운 문자열을 리턴 |
String | toLowerCase() | 알파벳 소문자로 변환한 새로운 문자열을 리턴 |
String | toUpperCase() | 알파벳 대문자로 변환한 새로운 문자열을 리턴 |
String | trim() | 앞뒤 공백을 제거한 새로운 문자열을 리턴 |
String | vauleOf() | 기본 타입 값을 문자열을 리턴 |
wrapper(포장) 클래스
- 기본 타입의 값을 갖는 객체를 생성할 수 있다.
- 이런 객체를 포장 객체라고 한다.(기본 값을 내부에 두고 포장함)
- 포장 객체의 특징: 포장하고 있는 기본 타입 값은 외부에서 변경할 수 없다.
- (변경하고 싶으면 새로운 포장 객체를 만들어야 한다.)
박싱(boxing)과 언박싱(Unboxing)
- 기본 타입의 값을 포장 객체로 만드는 과정을 박싱
- 반대로 포장 객체에서 기본 타입의 값을 얻어내는 과정을 언박싱
- 생성자를 이용하지 않아도 포장 클래스마다 가지고 있는 정적 valueOf() 메소드를 사용박싱된 포장 객체에서 다시 기본 타입의 값을 얻어내기 위해서는 각 포장 클래스마다 가지고 있는 기본 타입이름+ Value() 메소드를 호출
- Integer obj = Integer.valueOf(1000); Integer obj = Integer.valueOf("1000");
포장 값 비교
- 포장 객체는 내부의 값을 비교하기 위해 ==와 ≠연산자를 사용하지 않는 게 좋다.
- 내부의 값을 비교하는 게 아닌 포장 객체의 참조를 비교
Math 클래스
수학 계산에 사용할 수 있는 메소드를 제공
메소드 | 설명 |
int abs(int a) | 절대값 |
double ceil(double a) | 올림값 |
double floor(double a) | 버림값 |
int max(int a, int b) double max(double a, double b) | 최대값 |
int min(int a, int b) double min(double a, double b) | 최소값 |
double random() | 랜덤값 |
double rint(double a) | 가까운 정수의 실수값 |
long round(double a) | 반올림값 |
11_2 java.util 패키지
Date 클래스
날짜를 표현하는 클래스 객체 간에 날짜 정보를 주고받을 때 매개 변수나 리턴 타입으로 사용
// Date 객체 생성
Date now = new Date();
Date 객체의 toString()메소드는 영문으로 리턴하여 원하는 날짜 형식의 문자열을 얻으려면 java.text 패키지의 SimpleDateFormat 클래스를 사용
SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 mm월 dd일 hh시 mm분 ss초");
format() 메소드를 호출해서 원하는 형식의 날짜 정보를 얻을 수 있다.
String strNow = sdf.format(now);
Calendar 클래스
달력을 표현한 클래스로 Calendar 클래스는 추상 클래스로 new 연산자를 사용해서 인스턴스를 생성할 수 없다.
getInstance() 메소드를 이용하면 현재 운영체제에 설정되어 있는 시간대를 기준으로 Calendar 하위 객체를 얻을 수 있다.
Calendar now = Calendar.getInstance();
'자바 > 혼공 학습단 10기' 카테고리의 다른 글
chapter12 스레드 (0) | 2023.07.29 |
---|---|
혼공단 3주차 미션 (0) | 2023.07.23 |
혼공자 chapter10 예외 처리 (0) | 2023.07.19 |
혼공자 chapter08 인터페이스 (0) | 2023.07.15 |
혼공자 Chapter07. 상속 (0) | 2023.07.14 |