
Object 클래스자동으로 모든 클래스의 조상이 되는 클래스
= 클래스 계층 구조에서 루트가 되는 클래스
모든 클래스는 자동으로 Object 클래스를 상속받음
clone()equals(Object obj)hashCode()toString()toString() 메소드System.out.println(my_class1.toString());
equals() 메소드ob1.equals(obj2) → (obj1==obj2)clone() 메소드Clonable 인터페이스를 구현한 클래스의 객체만 clone() 호출 가능CloneNotSupportedException) 처리를 해 주어야 함
getClass() 메소드Class 객체를 리턴함
String 클래스문자열을 표현하고 처리하기 위한 클래스
String s1 = new String("Java"); //객체 생성
// 기본 자료형처럼 사용 가능
String s2 = "Java"; //리터럴을 대입
String 객체는 내용이 변하지 않는(immutable) 상수 객체
// 생성자
public String() : 빈 문자열 객체 생성
public String(String original)
public String(char[] value)
public String(char[] value, int offset, int count)
| 메소드 | 설명 |
|---|---|
int compareTo(String anotherString) | 두 문자열이 같으면 0을 리턴하고, 다르면 0이 아닌 정수값을 리턴함 |
int compareToLgnoreCase(String anotherString) | 대소문자를 무시하고 비교 |
boolean equals(Object anObject) | 두 문자열을 비교하여, 같으면 true 리턴하고 다르면 false 리턴함 |
boolean equalsIgnoreCase(String anotherString) | 대소문자를 무시하고 비교 |
int indexOf(String str)처음 위치부터 문자열 str을 찾아 처음 등장하는 위치(인덱스) 리턴, 없으면 -1 리턴
int indexOf(String str, int fromIndex)fromIndex 위치부터 문자열 str을 찾아 처음 등장하는 위치(인덱스) 리턴, 없으면 -1 리턴
int lastIndexOf(String str), int lastIndexOf(String str, int fromIndex)마지막 위치부터 앞 방향으로 찾음
char charAt(int index)index 위치에 있는 문자를 리턴
String substring(int beginIndex)beginIndex 위치부터 마지막까지의 문자열을 리턴
String substring(int beginIndex, int endIndex)beginIndex부터 (endIndex - 1)까지의 문자열을 리턴함
원본 문자열은 변경되지 않고, 새로운 객체가 만들어짐
| 메소드 | 설명 |
|---|---|
String replace(char oldChar, char newChar) | oldChar 문자를 newChar 문자로 변환하여 리턴함 |
String trim() | 문자열 앞과 뒤에 나오는 화이트 스페이스 문자를 제거하여 리턴함 |
String toUpperCase() | 모든 문자를 대문자로 변환하여 리턴함 |
String toLowerCase() | 모든 문자를 소문자로 변환하여 리턴함 |
String concat(String str) | 두 문자열을 연결하여 리턴함 |
startsWith(String prefix)endsWith(String suffix)toCharArray()StringBuffer 클래스객체 생성 이후 문자열을 변경할 수 있는 클래스
→mutable(내용 변경 가능) 클래스
내부적으로 문자열을 저장하기 위해 크기가 조절되는 버퍼를 사용함
//생성자
String buffer() //초기 버퍼의 크기는 16
String buffer(int length)
String buffer(String str) //초기 버퍼의 크기는 (str의 길이+16)
| 메소드 | 설명 |
|---|---|
int capacity() | 버퍼의 크기를 리턴함 |
int length() | 문자열의 길이를 리턴함 |
char charAt(int index) | index 위치의 문자를 리턴함 |
int indexOf(String str) | str로 시작하는 첫 위치를 리턴함 |
String substring(int start, int end) | start 위치부터 (end-1) 위치까지의 문자열을 리턴함 |
StringBuffer s1 = new StringBuffer("start");
System.out.println(s1.capacity()); //21
System.out.println(s1.length()); //5
System.out.println(s1.append("le")); //startle
| 메소드 | 설명 |
|---|---|
StringBuffer append(char c) | 문자 c를 추가한 StringBuffer 객체를 리턴함 |
StringBuffer delete(int start, int end) | start 위치에서 (end-1)까지의 문자열을 삭제 |
StringBuffer insert(int offset, String s) | offset 위치부터 문자열 s를 삽입 |
StringBuffer replace(int start, int end, String s) | start부터 (end-1)까지의 문자열을 s로 교체 |
StringBuffer reverse() | 문자열을 역순으로 변경 |
String 클래스의 문제점String은 immutable 클래스이기 때문StringBuffer와 StringBuilder로 해결기본형을 참조형으로 표현하기 위한 클래스
String 사이의 형변환 기능 제공
Number의 자식 포장 클래스가 제공하는 상수를 사용할 때Integer.MIN_VALUE, Integer.MAX_VALUENumber 클래스숫자를 표현하는 Byte, Short, Integer, Long, Float, Double의 추상 부모 클래스
Number의 자식 클래스에서 구현된 주요 메소드| 메소드 | 설명 |
|---|---|
double doubleValue() | Double 객체를 double 값으로 변환 (unboxing) |
String toString() | Double 객체를 String으로 변환 |
static Double valueOf(double) | double 값을 Double 객체로 변환 (boxing) |
static String toString(double) | double 값을 String으로 변환 |
static Double valueOf(String) | String을 Double 객체로 변환 |
static double parseDouble(String) | String을 double 값으로 변환 |
int compareTo(Byte anotherByte) | 인자와 비교하여 숫자가 같으면 0을 리턴 |
boolean equals(Object obj) | 같은 유형이고 값이 같으면 true를 리턴 |
String <-> 기본형 데이터 변환포장 클래스가 제공하는
static메소드 사용
String → int(or Long)int n = Integer.parseInt("123");
long l = Long.parseLong("1234");
int(or Long) → StringString s1 = Integer.toString(4);
String s2 = Long.toString(5l);
String s3 = String.valueof(123);
Integer 클래스Integer, String, int 사이의 변환 기능 제공
| 메서드 | 설명 |
|---|---|
static int parseInt(String s) | String을 int 값으로 변환 |
static String toString(int i) | int 값을 String으로 변환 |
static Integer valueOf(int i) | int 값을 Integer 객체로 변환 (boxing) |
String toString() | Integer 객체를 String으로 변환 |
static Integer valueOf(String s) | String을 Integer 객체로 변환 |
기본형 데이터를 포장 클래스의 객체로 변환
// 예: double 값을 Double 객체로 변환
Double radius = new Double(2.59); //생성자 사용, 옛날 방식
Double radius = Double.valueof(10.4); //valueOf() 사용
Double radius = 2.59; //자동 Boxing
💡 자동 박싱
- 기본형에서 포장 클래스의 객체로 자동 변환되는 것
- 인자에 전달되거나 변수에 대입될 때 적용됨
포장 클래스의 객체를 기본형 데이터로 변환
→ 포장 클래스에서 기본형Value() 메소드를 사용
//예: radius는 Double형 객체라 가정
double r = radius.doubleValue(); //객체.기본형Value()
double r = radius; //자동 unboxing
System.out.println(Integer.valueof(3) % 2) //자동 unboxing
💡 자동 언박싱
- 포장 클래스의 객체에서 기본형으로 자동 변환되는 것
- 인자에 전달되거나 변수에 대입될 때 적용됨
System 클래스Java 플랫폼 및 시스템과 관련된 기능 제공
JVM 또는 운영체제 속성과 시스템 환경 변수의 사용과 제어System.inInputStream 유형System.in.read()는 키보드로부터 1바이트 문자 입력받음System.outPrintStream 유형System.errPrintStream 유형