java.lang Package

HYUNBIN CHO·2021년 8월 4일
0

java

목록 보기
23/23
post-thumbnail

🔷 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()를 오버라이딩하지 않기 때문에 ==로 비교한 것과 같은 결과가 나온다.
toString()으로 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
profile
백견이 불여일타

0개의 댓글

관련 채용 정보