java.lang Package


🔷 Objectクラス


🔸 Objectクラスはすべてのクラスの最高祖先クラスです.
protected Object clone(); // 객체에 저장된 값을 리턴(객체가 참조하고 있는 객체는 복사X)
public boolean equals(Object object); 
// 객체의 참조변수를 매개변수로 받아서 같은 객체인지 (주소값이 같은 지) boolean으로 리턴
public Class getClass(); // 객체 자신이 속하는 클래스의 정보를 리턴
public int hashCode(); // 객체 자신의 해시코드를 리턴
public String toString(); // 객체 자신의 정보를 문자열로 리턴
protected Object clone(); // 객체를 복사 -> 얕은 복사(: 기존 객체의 참조값을 공유)

--------쓰레드 관련 메서드---------------
public void notify();
public void notifyAll();
public void wait();

🔷 Stringクラス


🔸 文字列の保存と処理に必要な方法を提供します.
🔸 作成したStringインスタンスは変更できません.(検索のみ)
加算演算子を使用して文字列を追加すると、新しいインスタンスが生成されます.
/* 문자열 리터럴을 지정해서 만들기 */
String str1 = "abc";
String str2 = "abc";
str1 == str2 // true
str1.equals(str2) // true
// 이미 존재하는 것을 재사용 -> 같은 주소값을 가진다.
----------------------------
/* 생성자를 사용해 만들기 */
String str1 = new String("abc");
String str2 = new String("abc");
str1 == str2 // false
str2.equals(str2); // true
// 새로운 인스턴스가 생성 -> 다른 주소값을 가진다.
String(char[] value); // value를 문자열로 가지는 String인스턴스를 생성 ↔️ toCharArray()
String(StringBuffer buffer); // buffer의 문자열과 같은 내용을 가진 String인스턴스를 생성
char charAt(int index); // 해당 index에 있는 문자를 리턴
int compareTo(String str); // str과 사전순서로 비교(같으면 0, 이전이면 음수, 이후면 양수 리턴)
String concat(String str); // str를 문자열 뒤에 추가
boolean contains(CharSequence s); // 해당 문자열(s)가 포함되어있는지 체크
boolean endsWith(String suffix); // suffix로 끝나는지 체크 ↔️ startWith(String prefix)
boolean equals(Object object); // object와 String인스턴스의 문자열이 같은 지 비교
boolean equalsIgnoreCase(String str); // 대소문자 구분없이 비교
int indexOf(int ch); // 주어진 문자의 index를 리턴(못찾으면 -1)
int lastIndexOf(int ch); // 주어진 문자를 오른쪽 끝에서부터 찾아서 index리턴
int length(); // 문자열의 길이 리턴
String replace(char a, char b); // a를 b로 바꾼 문자열 리턴
String[] split(String regex);
// 문자열을 지정된 분리자(정규식)로 나누어서 문자열 배열로 리턴 ↔️ String join(구분자, String[] arr)
String subString(int begin, int end); // 문자열의 일부를 자른다.(begin은 포함, end는 포함X)
String toLowerCase(); // ↔️ toUpperCase();
String trim(); // 왼쪽 끝과 오른쪽 끝에 공백을 없애서 리턴(중간의 공백은 제거되지 않음)

🔹 StringJoiner


    🔸 複数の文字列間に区切り記号を挿入して結合
StringJoiner joiner = new StringJoiner(",", "[", "]");
String[] strArr = {"a", "b", "c"};
for(String str : strArr){
    joiner.add(str);
}
System.out.println(joiner.toString()); // [a, b, c]

🔹 せいけいかん

/* 기본형 -> String */
int a = 123;
String str1 = String.ValueOf(a); // 빠름
String str2 = a + ""; // 편함

/* String -> 기본형 */
int i1 = Integer.paserInt("100"); // 옛날방법
int i2 = Integer.ValueOf("100"); 
// valueOf의 반환타입은 Wrapper클래스인데 오토박싱으로 인해 int형으로 자동변환된다.

🔹 StringBuffer/stringBuilderクラス


🔸 StringBufferクラスには、内部に文字列を編集するためのバッファがあるため、指定した文字列を変更できます.
🔸 StringBufferクラスのインスタンスを作成すると、char型配列が作成され、文字列を格納および編集するスペースとして使用されます.
StringBufferを作成する場合は、ジェネレータを使用して空きサイズを指定することをお勧めします.(デフォルト:16)
🔸 equals()は上書きされないため,結果は==で比較した結果と同じである.
String()を使用してStringインスタンスを取得する場合は、equals()を使用する必要があります.
StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
String str1 = sb1.toString();
String str2 = sb2.toString();
str1.equals(str2);

🔷 Mathクラス

static double abs(double a); // 절대값 반환
static double ceil(double a); // 올림
static double floor(double a); // 버림
static double max(double a, double b); // 두 값 중 큰 값
static double min(double a, double b); // 두 값 중 작은 값
static double random(); // 0.0 ~ 1.0(1.0 포함x)의 랜덤값
static long round(double a); // 소수 첫째자리에서 반올림한 정수값 반환

🔷 Wrapperクラス


🔸 基本タイプ変数(Primitive types)もオブジェクトとして処理する必要がある場合があります.
基本変数データをオブジェクトとしてパッケージ化するクラスです.たとえば、外部からデータを受信するときに、値をオブジェクトとして保存する必要がある場合です.
- boolean > Boolean
- char > Character
- byte > Byte
- short > Short
- int > Integer
- long > Long
- float > Float
- double > Double
▼BigInteger:longの範囲を超える大きな整数
▼BigDecimal:doubleの範囲外の大きな浮動小数点数
🔸 文字列タイプを数値に変換[タイプ.parseタイプ(String str)]
int i1 = Integer.parseInt("50"); // 문자열 -> 기본형
int i2 = Integer.valueOf("50"); // 문자열 -> 객체형(래퍼클래스)
/* n진법 수로 변환 */
int i3 = Integer.parseInt("100", 2); // 100을 2진수로 : 4
int i4 = Integer.parseInt("100", 2); // 100을 16진수로 : 256