Java.lang 패키지란 ?
자바 프로그래밍에 가장 기본이 되는 클래스들을 포함하는 패키지
Object 클래스의 메소드
- protected Object clone() : 객체 자신의 복사본을 반환
- public boolean equals(Object obj) : 같은 객체이면 true 반환 (주솟값 참조)
- protected void finalize() : 객체가 소멸될 때 Garbage Collector에 의해 자동으로 호출
- public Class getClass() : 객체의 Class 인스턴스를 반환한다.
- public int hashCode() : 객체의 해시코드를 반환
- public String toString() : 객체의 정보를 문자열로 반환
- public void notify() : 객체를 사용하려고 기다리는 쓰레드를 하나만 깨운다.
- public void notifyAll() : 모든 쓰레드를 깨운다.
- public void wait() : notify(), notifyAll()이 호출될때까지 무한히, 혹은 지정된 시간만큼 쓰레드를 기다리게 한다.
hashCode()
해싱(hashing)이란, 다량의 데이터를 저장하고 관리하는 데이터 기법 중 하나이다.
같은 문자열에 대해서 같은 해시코드를 반환한다.
clone()
단순히 인스턴스 변수의 값만 복사하기 때문에,
배열과 같이 참조 타입의 인스턴스 변수가 있는 클래스의 경우 따로 오버라이딩하여 clone메서드를 구현해야 한다.
String 클래스
문자열을 만들 때 아래 두 가지 구문의 차이점은,
String str1 = "abc";
String str2 = new String("abc");
위는 str1이 문자열 리터럴 "abc"의 주솟값을 참조하고,
str2는 새로운 String 인스턴스를 생성하여 다른 주솟값을 참조하도록 한다.
equals() 함수로 두 문자열의 내용을 비교해 true의 결괏값을 얻을 수 있지만,
'=='의 비교 연산자로는 주솟값을 비교하기 때문에 다른 결과를 낳을 수 있다.
- charAt(int index) : index 위치에 있는 문자를 반환
- concat(String str) : str 문자열을 현재 문자열의 뒤에 붙임
- intern() : 문자열을 상수(리터럴) 풀에 등록, 같은 내용의 문자열이 이미 있을 경우 주솟값을 반환
- lastIndexOf(int ch) : 오른쪽부터 ch 문자를 찾아 index를 반환
- split(String regex) : 분리자 regex를 기준으로 문자열을 나누어 문자열 배열에 담아 반환
- subString(int begin, @Nullable int end) : begin부터 end 범위에 포함된 문자열을 얻음. end 위치의 문자는 포함되지 않는다.
- trim() : 문자열의 양끝에 있는 공백을 제거해 반환한다 .
- valueOf(타입이름 변수) : int, boolean, float, double 등 다양한 형태의 값을 문자열로 변환해 반환한다.
StringBuffer 클래스와 StringBuilder 클래스
StringBuffer 클래스를 사용해, String 클래스의 인스턴스를 생성할 때 지정된 문자열을 변경할 수 있다.
지정된 버퍼의 범위를 벗어났을 때 추가로 공간을 확보해 값을 더 넣을 수 있게 된다.
StringBuffer sb = new StringBuffer("abc");
sb.append("123");
sb.append("23");
or
sb.append("123").append("23");
멀티 쓰레드로 작성된 프로그램이 아닌 경우, StringBuffer의 사용은 성능이 떨어지게 된다.
StringBuilder클래스는 StringBuffer 클래스에서 동기화만 제외한 특성이며,
사용은 StringBuffer와 동일하다.
Wrapper 클래스
기본형 변수를 객체로 변환하여 작업을 수행하기 위해, Java에서는 문자열이나 정수형 등의 값을 매개변수로 받는 Wrapper 클래스를 지원한다.
유용한 클래스
https://luvstudy.tistory.com/51
java.util.Objects 클래스
Null 체크 시 자주 사용된다.
if(Objects.equals(a,b)){
//code
}
java.util.Scanner 클래스
File, String, Path 등 다양한 인자를 받아 입력소스로부터 데이터를 읽을 수 있다.
'Langauge > Java' 카테고리의 다른 글
자바의 정석 Chapter12. 지네릭스, 열거형, 애너테이션 (0) | 2022.04.05 |
---|---|
Java의 정석 Chapter10. 날짜와 시간 & 형식화 / Chapter11. 컬렉션 프레임워크 (0) | 2022.03.29 |
Java의 정석 Chapter8. 예외처리(Exception Handling) (0) | 2022.03.21 |
Java InputStream에서 File 객체로 변환하기 (0) | 2022.03.21 |
Java의 정석 Chapter7.객체지향 프로그래밍2 (0) | 2022.03.13 |