Object 클래스의 메서드
| 메서드 | 설명 |
|---|---|
protected Object clone() | 해당 객체의 복사본을 반환 (깊은 복사는 아님) |
boolean equals(Object obj) | 두 객체가 같은지 비교 |
protected void finalize() | 객체가 가비지 컬렉션될 때 호출 (더 이상 사용되지 않음) |
Class<?> getClass() | 런타임 시 해당 객체의 클래스 정보를 반환 |
int hashCode() | 객체의 해시코드 값을 반환 |
void notify() | 현재 객체의 모니터에서 기다리는 하나의 스레드를 깨움 |
void notifyAll() | 현재 객체의 모니터에서 기다리는 모든 스레드를 깨움 |
String toString() | 객체의 문자열 표현을 반환 |
void wait() | 현재 스레드를 대기 상태로 만듦 (다른 스레드에서 notify() 호출 시까지) |
void wait(long timeout) | 지정된 시간 동안 대기 후 자동으로 깨어남 |
void wait(long timeout, int nanos) | 지정된 시간(나노초 단위) 동안 대기 후 자동으로 깨어남 |
Class 클래스 : Java에서 Class 클래스는 클래스의 메타데이터(클래스 정보)를 표현하는 클래스. 즉, JVM이 클래스에 대한 정보를 저장하고 관리하기 위해 사용하는 클래스이며, 리플렉션(Reflection) API의 핵심이 된다
클래스 로더에 의해 클래스 파일이 메모리에 올라갈 때 자동으로 생성된다
클래스 객체를 얻는 법
Class obj = new Test().getClass();
Class obj = Test.class;
Class obj = Class.forName("Test");
문자열을 char 배열로 저장하며 관련된 메서드를 제공하는 클래스
public final class String implements java.io.Serializable, Comparable {...}
특징
주요 메서드
| 메서드 | 설명 |
|---|---|
int length() | 문자열의 길이를 반환 |
char charAt(int index) | 지정된 위치의 문자 반환 |
int indexOf(String str) | 특정 문자열이 처음 등장하는 위치 반환 (없으면 -1) |
int lastIndexOf(String str) | 특정 문자열이 마지막으로 등장하는 위치 반환 |
boolean contains(CharSequence s) | 문자열이 특정 문자열을 포함하는지 여부 반환 |
boolean startsWith(String prefix) | 특정 접두사로 시작하는지 확인 |
boolean endsWith(String suffix) | 특정 접미사로 끝나는지 확인 |
boolean equals(Object obj) | 문자열의 내용이 같은지 비교 |
boolean equalsIgnoreCase(String anotherString) | 대소문자 구분 없이 문자열 비교 |
String substring(int beginIndex) | 지정된 위치부터 끝까지 문자열 추출 |
String substring(int beginIndex, int endIndex) | 지정된 범위의 문자열 추출 |
String toUpperCase() | 문자열을 대문자로 변환 |
String toLowerCase() | 문자열을 소문자로 변환 |
String trim() | 문자열 앞뒤 공백 제거 |
String replace(CharSequence target, CharSequence replacement) | 특정 문자열을 다른 문자열로 변경 |
String[] split(String regex) | 특정 구분자로 문자열을 나눠 배열로 반환 |
String concat(String str) | 문자열을 이어 붙임 (+ 연산자와 동일) |
boolean isEmpty() | 문자열이 비어 있는지 ("") 확인 |
String join(CharSequence delimiter, CharSequence... elements) | 여러 문자열을 특정 구분자로 연결. java.util.StringJoiner 로도 결합할 수 있음 |
byte[] getBytes() | 문자열을 바이트 배열로 변환 |
char[] toCharArray() | 문자열을 문자 배열로 변환 |
String format(String format, Object... args) | 지정된 형식(format)에 맞춰 문자열 반환 (ex: String.format("Name: %s, Age: %d", "Alice", 25)) |
String valueOf(primitive_type v) | 기본형(primitive) 또는 객체를 문자열로 변환 (ex: String.valueOf(123) → "123") |
공통점
차이점
| 특징 | StringBuffer | StringBuilder |
|---|---|---|
| 동기화 (Thread-Safety) | ✅ 멀티스레드 환경에서 안전 | ❌ 동기화 지원 X (싱글 스레드에서 빠름) |
| 성능 | 동기화로 인해 StringBuilder보다 느림 | 동기화가 없어 더 빠름 |
| 사용 목적 | 멀티스레드 환경에서 사용 | 성능이 중요한 싱글스레드 환경에서 사용 |
주요 메서드(동일)
| 메서드 | 설명 |
|---|---|
append(String s) | 문자열을 끝에 추가 |
insert(int offset, String s) | 특정 위치에 문자열 삽입 |
replace(int start, int end, String s) | 지정된 범위의 문자열을 다른 문자열로 변경 |
delete(int start, int end) | 지정된 범위의 문자열 삭제 |
deleteCharAt(int index) | 특정 인덱스의 문자 삭제 |
reverse() | 문자열을 뒤집음 |
setCharAt(int index, char ch) | 특정 인덱스의 문자를 변경 |
capacity() | 현재 버퍼의 크기 반환 |
ensureCapacity(int minimumCapacity) | 최소한의 버퍼 크기 보장 |
charAt(int index) | 지정된 인덱스의 문자 반환 |
substring(int start, int end) | 지정된 범위의 문자열 반환 (새로운 String 객체 생성) |
length() | 문자열 길이 반환 |
setLength(int newLength) | 문자열 길이를 변경 (길이를 줄이면 삭제 효과, 늘리면 공백 추가) |
toString() | StringBuffer 또는 StringBuilder 객체를 String으로 변환 |
기본적인 수학계산에 유용한 메서드로 구성
| 메서드 | 설명 |
|---|---|
abs(int a) | 절댓값 반환 (Math.abs(-10) → 10) |
max(int a, int b) | 두 값 중 더 큰 값 반환 (Math.max(5, 10) → 10) |
min(int a, int b) | 두 값 중 더 작은 값 반환 (Math.min(5, 10) → 5) |
pow(double a, double b) | a의 b제곱 반환 (Math.pow(2, 3) → 8.0) |
sqrt(double a) | 제곱근 반환 (Math.sqrt(16) → 4.0) |
cbrt(double a) | 세제곱근 반환 (Math.cbrt(27) → 3.0) |
round(float a) | 반올림하여 가장 가까운 정수 반환 (Math.round(4.6) → 5) |
floor(double a) | 내림(버림) 연산 (Math.floor(4.9) → 4.0) |
ceil(double a) | 올림 연산 (Math.ceil(4.1) → 5.0) |
random() | 0.0 이상 1.0 미만의 난수 생성 (Math.random() → 0.12345...) |
sin(double a) | 사인값 반환 (Math.sin(Math.PI/2) → 1.0) |
cos(double a) | 코사인값 반환 (Math.cos(0) → 1.0) |
tan(double a) | 탄젠트값 반환 (Math.tan(Math.PI/4) → 1.0) |
log(double a) | 자연로그(ln) 반환 (Math.log(Math.E) → 1.0) |
log10(double a) | 상용로그(log10) 반환 (Math.log10(100) → 2.0) |
exp(double a) | e의 a제곱 반환 (Math.exp(2) → 7.389...) |
signum(double a) | 양수면 1, 0이면 0, 음수면 -1 반환 (Math.signum(-10) → -1.0) |
toDegrees(double rad) | 라디안을 각도로 변환 (Math.toDegrees(Math.PI) → 180.0) |
toRadians(double deg) | 각도를 라디안으로 변환 (Math.toRadians(180) → 3.141592...) |
기본형(Primitive Type)을 객체(Object)로 다룰 수 있도록 감싸는 클래스
특징
Integer(int value) Integer(String s)상속 계층도
종류
| 기본형 | 래퍼 클래스 |
|---|---|
boolean | Boolean |
byte | Byte |
char | Character |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
주요 메서드
| 메서드 | 설명 |
|---|---|
valueOf(String s) | 문자열을 해당 타입의 객체로 변환 (Integer.valueOf("123") → 123) |
parseXxx(String s) | 문자열을 기본형으로 변환 (Integer.parseInt("123") → 123) |
xxxValue() | 객체를 기본형으로 변환 (intValue(), doubleValue() 등) |
toString() | 값을 문자열로 변환 (Integer.toString(123) → "123") |
compareTo(T obj) | 두 객체 비교 (a.compareTo(b) → a > b이면 1, a < b이면 -1, 같으면 0) |
equals(Object obj) | 값이 같은지 비교 (Integer.valueOf(100).equals(100) → true) |
MAX_VALUE / MIN_VALUE | 해당 타입의 최대/최소값 (Integer.MAX_VALUE → 2147483647) |
기본형(Primitive Type)과 래퍼 클래스(Wrapper Class) 간의 변환을 자동으로 수행하는 기능
오토박싱(autoboxing) : 기본형 → 래퍼 클래스
언박싱(unboxing) : 래퍼 클래스 → 기본형
예시
public class AutoBoxingUnBoxing {
public static void main(String[] args) {
// 오토박싱 (기본형 → 객체)
Integer intObj = 100;
Double doubleObj = 10.5;
// 언박싱 (객체 → 기본형)
int intVal = intObj;
double doubleVal = doubleObj;
// 자동 변환 확인
System.out.println("Integer 객체: " + intObj); // 100
System.out.println("Double 객체: " + doubleObj); // 10.5
System.out.println("int 값: " + intVal); // 100
System.out.println("double 값: " + doubleVal); // 10.5
}
}
java.util.Objects| 메서드 | 설명 |
|---|---|
isNull(Object obj) | 객체가 null인지 확인 |
nonNull(Object obj) | 객체가 null이 아닌지 확인 |
requireNonNull(T obj) | 객체가 null이면 예외 발생 |
equals(Object a, Object b) | 두 객체가 같은지 비교 (null 안전) |
hash(Object... values) | 여러 값을 기반으로 해시코드 생성 |
toString(Object obj) | 객체를 문자열로 변환 (null이면 "null" 반환) |
java.util.Random| 메서드 | 설명 |
|---|---|
nextInt() | 임의의 정수 반환 |
nextInt(int bound) | 0 ~ bound-1 범위의 정수 반환 |
nextDouble() | 0.0 ~ 1.0 사이의 실수 반환 |
nextBoolean() | 랜덤한 true / false 반환 |
nextGaussian() | 정규분포를 따르는 난수 반환 |
java.util.regex 패키지 (Pattern, Matcher)| 클래스/메서드 | 설명 |
|---|---|
Pattern.compile(String regex) | 정규식 패턴 생성 |
matcher(CharSequence input) | 입력 문자열과 패턴 매칭 |
find() | 패턴과 일치하는 부분 검색 |
group() | 매칭된 문자열 반환 |
replaceAll(String replacement) | 정규식과 일치하는 부분을 대체 |
java.util.Scanner| 메서드 | 설명 |
|---|---|
nextInt() | 정수 입력 받기 |
nextDouble() | 실수 입력 받기 |
nextLine() | 한 줄 입력 받기 |
hasNext() | 입력 값이 남아있는지 확인 |
useDelimiter(String pattern) | 입력 구분자 설정 |
java.util.StringTokenizer| 메서드 | 설명 |
|---|---|
StringTokenizer(String str, String delim) | 문자열을 특정 구분자로 분할 |
hasMoreTokens() | 다음 토큰이 있는지 확인 |
nextToken() | 다음 토큰 반환 |
countTokens() | 남은 토큰 개수 반환 |
java.math.BigInteger| 메서드 | 설명 |
|---|---|
add(BigInteger val) | 덧셈 |
subtract(BigInteger val) | 뺄셈 |
multiply(BigInteger val) | 곱셈 |
divide(BigInteger val) | 나눗셈 |
mod(BigInteger val) | 나머지 연산 |
pow(int exponent) | 거듭제곱 |
java.math.BigDecimal| 메서드 | 설명 |
|---|---|
add(BigDecimal val) | 덧셈 |
subtract(BigDecimal val) | 뺄셈 |
multiply(BigDecimal val) | 곱셈 |
divide(BigDecimal val, RoundingMode mode) | 나눗셈 (반올림 모드 설정) |
compareTo(BigDecimal val) | 두 값 비교 |
setScale(int newScale, RoundingMode mode) | 소수점 자리수 설정 |