“자바 프로그램의 기본적인 클래스들을 담고 있는 패키지”
<aside> ✅ Object 클래스
“모든 클래스의 최고 조상으로 오직 11개의 메서드만을 가지고 있다.”
Object 클래스가 제공하는 메소드
public Class getClass() // (1) 객체의 클래스 정보를 담은 Class 객체를 리턴
public boolean equals(Object obj) // (2) 객체의 내용이 같은 지를 비교하므로 객체 비교를 위해서는 equals() 메소드를 사용. 객체 내의 필드 값이 같아도 가리키는 객체가 다르면 false를 return한다. // vs. ==연산자(두 객체의 값을 비교하므로 기본 타입의 값을 비교하기 위해서는 ==연산자를 사용)
public int hashCode() // (3) 객체의 해시코드를 리턴. 객체를 식별하는 하나의 정수값로, 두 객체가 동등한 지 비교할 때 재정의
public String toString() // (4) 객체의 문자 정보를 리턴. 유익한 정보를 리턴할 때 재정의. '객체 + 문자열' 연산이나 객체를 출력하는 경우에 자동으로 호출
protected Object clone() // (5) 객체 자신의 복사본을 반환하며, 주로 오버라이딩하면서 public으로 변환해서 사용한다.
protected void finalize() // (6) 거의 사용하지 않는 메서드로, 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출된다. 이때 수행되어야하는 코드가 있을 때 오버라이딩한다. 주로 오버라이딩하면서 public으로 변환해서 사용한다.
/* 쓰레드 관련 메서드 */
public void notify() // (7) 객체 자신을 사용하려고 기다리는 쓰레드 하나만 깨운다.
public void notifyAll() // (8) 객체 자신을 사용하려고 기다리는 모든 쓰레드를 깨운다.
public void wait() // (9)
public void wait(long timeout) // (10)
public void wait(long timeout, int nanos) // (11)
// (9) ~ (11) 다른 쓰레드가 notify()나 notifyAll()을 호출할 때까지 현재 쓰레드를 무한히 또는 지정된 시간(timeout, nanos) 동안 기다리게 한다. 이때, timeout은 (10의 3제곱)분의 1초, nanos는 (10의 9제곱)분의 1초이다.
</aside>
<aside> ✅ Math 클래스
: java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있다. Math 클래스가 제공하는 메소드는 모두 정적 메소드이므로 Math 클래스는 바로 사용 가능하다.
Math 클래스가 제공하는 메소드
int abs(int a) double abs(double a) : 절대값
int v1 = Math.abs(-5) ; //5
double v2 = Math.abs(-3.14);//3.14
double ceil(double a) : 올림값
double v3 = Math.ceil(5.3); //6.0
double v4 = Math.ceil(-5.3); //-5.0
double floor(double a) : 내림값
double v5 = Math.floor(5.3); //5.0
double v6 = Math.floor(-5.3); //-6.0
int max(int a, int b) : 최대값
double max(double a, double b)
int v7 = Math.max(5, 9); //9
double v8 = Math.max(5.3, 2.5); //5.3
int min(int a, int b) : 최소값
double min(double a, double b)
double random() : 난수 발생
double rint(double a): half round
double round(double a) : 사사오입(반올림)
Math.round(double a) //실수를 소수점 첫째 자리에서 반올림한 정수를 반환
Math.random() //double타입인 0.0이상 1.0 미만 사이의 값을 반환
CF. *
: all, **.**
: 모든 파일
</aside>
<aside> ✅ String 클래스
| | *** StringBuffer : append() : 문자열 변환
표준입력장치(키보드)로부터 데이터를 입력받을 때 사용
표준출력장치(모니터)로 출력하기 위해 사용
자바가상기계를 종료할 때 사용 | | --- | --- | | lastIndexOf( ) | 문자를 찾는 경우(MVC) | | trim( ) | 로그인 처리, 사용자 입력값 | | valueOf( ) | 유일하게 => static => 모든 데이터형을 문자열 변환 |
String 클래스의 특징
String 생성자
: 자바의 문자열은 java.lang 패키지의 String 클래스의 인스턴스로 관리된다. 소스 상에서 문자열 리터럴은 String 객체로 자동 생성되지만, String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성할지는 제공되는 매개 값의 타입에 달려있다. 파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte[ ] 배열이므로 이것을 문자열로 변환하기 위해 사용된다.
사용 빈도수가 높은 생성자들
//배열 전체를 String 객체로 생성
String str = new String(byte[ ] bytes);
//지정한 문자셋으로 디코딩
String str = new String(byte[ ] bytes, String charestName);
//배열의 offset 인덱스 위치부터 length만큼 String 객체로 생성
String str = new String(byte[ ] bytes, int offset, int length);
//지정한 문자셋으로 디코딩
String str = new String(byte[ ] bytes, int offset, int length, String charsetName);
String 클래스가 제공하는 메서드
charAt(int index) //charAt( ) 메소드는 매개 값으로 주어진 인덱스이 문자를 리턴한다. 즉, index 위치의 글자를 반환한다.
toCharArray() //문자열을 문자배열로 변환해서 리턴
equals(Object onObject) //두 문자열의 내용을 비교해서 true/false를 리턴
getBytes( ) //byte[ ]로 리턴한다.
getBytes(Charset charset) //주어진 문자셋으로 인코딩한 byte[ ]로 리턴한다.
indexOf(String str) //indexOf( ) 메소드는 매개 값으로 주어진 문자열이 시작되는 인덱스를 리턴한다. 만약 주어진 문자열이 포함되어 있지 않으면 –1을 리턴한다. 다시 말해 해당 메소드는 문자열 내에서 주어진 문자열의 위치를 리턴하는 기능을 한다.
length( ) //문자열의 길이를 리턴
substring(beginIndex) //beginIndex 위치에서 끝까지 잘라낸 새로운 문자열을 리턴한다.
substring(beginIndex, endIndex) //beginIndex 위치에서 endIndex 전까지 잘라낸 새로운 문자열을 리턴한다.
replace(target, replacement) //target 부분을 replacement로 대치한 새로운 문자열을 리턴한다.
String[] split(String regex) //문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환
String[] split(String regex, int limit) //문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아, 문자열 전체를 분리자를 기준으로 지정된 수(limit)까지만 반환한다.
join() //여러 문자열 사이에 구분자를 넣어서 결합해준다. //같은 결과가 나타나는 또 다른 방법 中 에는 StringJoiner 클래스를 사용해서 문자열을 결합하는 방법도 있다.
toString() //String 인스턴스가 갖고 있는 문자열을 반환하도록 Object 클래스의 toString() 메서드를 오버라이딩하였다.
toLowerCase( ) //알파벳 소문자로 변환한 새로운 문자열을 리턴한다.
toUpperCase( ) //알파벳 대문자로 변환한 새로운 문자열을 리턴한다.
trim( ) //앞뒤 공백을 제거한 새로운 문자열을 리턴한다.
valueOf() //기본타입 값을 문자열로 리턴한다.
</aside>
<aside> ✅ System 클래스
System 클래스가 제공하는 메서드
System.arraycopy(복사할배열명, 복사시작인덱스, 복사될배열명, 복사시작인덱스, 복사인덱스수) //배열의 요소 하나하나에 접근해서 복사할 수 있는 for문과 달리, 배열 각 요소들이 연속적으로 저장되어 있다는 특성을 이용하여 지정된 범위를 한 번에 복사해준다.
</aside>
<aside> ✅ Throwable 클래스
<aside> ✅ Wrapper 클래스
<aside> ☑️ 박싱(Boxing)과 언박싱(UnBoxing)
</aside>
</aside>