1. Object 클래스
- java.lang.Object, 모든 클래스가 상속받는다.
- Object 클래스는 유일하게 아무 클래스도 상속받지 않는 최상위 클래스
- 주요메소드
- hashCode(), toString() : 객체의 해시 코드 값, 객체를 나타내는 문자열 정보 제공 cf) 해시 코드 값은 객체가 생성될 때 할당받는 고유한 정수값
- getClass() : 객체의 클래스 정보를 담은 Class 객체를 리턴, Class 객체의 getName()을 호출하면 객체의 클래스 명을 알 수 있다.
- Object에는 객체를 문자열로 변환하는 toString()이 있으며, 각 클래스는 toString()을 오버라이딩(메소드 재정의)하여 자신만의 문자열을 리턴할 수 있다.
2. equals() 메소드
- ==는 두 객체의 레퍼런스 변수가 같은지 비교한다
- equals()는 두 객체의 내용이 같은지 비교를 하며, 어떤 내용을 비교할 것인지를 오버라이딩할 수 있다.
3. Wrapper 클래스
- 기본타입(primitive type) 8개를 객체로 다루기 위해 기본 타입별 객체화 타입이 존재한다. 그것이 Wrapper클래스
- 생성 방법 : Integer i = new Integer(10), Character c = new Character('c'), Boolean b = new Boolean(true)
- Character를 제외한 나머지 Wrapper 클래스의 경우도 문자열로 Wrapper 객체를 생성할 수 있다.
- 용도는 대부분 Wrapper클래스의 메소드로 기본 타입 값을 문자열로 변환하거나 문자열을 기본 타입 값으로 변환하는 것들이다. 대부분 static 메소드이므로 Wrapper 객체로 바로 호출 가능.
4. Boxing과 Unboxing
- 기본 타입의 값을 Wrapper 객체로 변환하는 것을 Boxing, 반대를 Unboxing
ex)
Integer ten = new Integer(10); //Boxing
int n = ten.intValue(); //Unboxing
- JDK 1.5부터 둘 다 자동으로 이루어진다. 다음과 같이 작성해도 동일하다
ex)
Integer ten = 10;
int n = ten;
5. String 클래스
- String 클래스는 문자열을 나타내고, String literal은 String 객체로 처리된다.
ex)
//str1, str2, str3 모두 'abcd' 동일
String str1 = "abcd"
char[] data = {'a', 'b', 'c', 'd'}
String str2 = new String(data);
String str3 = new String('abcd');
- String literal과 new String() 객체는 서로 다르게 관리된다.
- String literal은 JVM의 literal table로 관리하며, 동일한 리터럴은 공유시킨다(String a = 'hello' String b = 'hello' -> a와 b를 동일한 리터럴로 공유시킨다).
- new String()은 힙 메모리에서 별도로 관리한다(레퍼런스 변수, 각각 내용이 같아도 각각 메모리 부여)
- String 객체는 수정이 불가능하며 보통 추가로 객체를 생성한다. 굳이 객체를 수정하려면 이런식으로 한다
ex) String s = 'hello'; s = s.concat("java"); -> s는 'hellojava'
- String 객체의 메소드들은 자주 쓰인다, 주요 메소드들은 다음과 같다.
6. StringBuffer 클래스
- 내부에 가변 크기의 버퍼를 가지고 문자의 개수에 따라 버퍼 크기를 자동 조절한다. 그러므로 String의 수정이 가능하다. 자주 바꾸는 String이면 StringBuffer로 선언하자.
ex)
StringBuffer sb = new StringBuffer("This");
sb.append(" is pencil. ");
sb.insert(7, " my");
sb.replace(8,10,"your");
System.out.println(sb); >> This is your pencil
7. StringTokenizer 클래스
- 문자열을 구분자를 갖고 토큰으로 분리하기 위해 사용되는 클래스
ex)
String q = "name=jaeshik&addr=seoul&age=21"
StringTokenizer st = new StringTokenizer(q, "&");
//st 객체는 "name=jaeshik", "addr=seoul", "age=21" 토큰 3개로 구성된다.
//구분자를 "&="로 했으면 name, jaeshik, addr, seoul, age, 21 싹다 분리됨.
8. Math 클래스
- 각종 수학 관련 메소드 제공
- 대표적으로 난수발생(java.util.Random도 존재)
ex)
Math.random() ->0.0<=x<1.0인 double타입 x를 리턴
ex)
import java.util.*
Random r = new Random();
int n = r.nextInt(); // 음수, 양수, 0 포함하여 정수 범위의 난수
itn m = r.nextInt(100); // 0~99 난수
'Programming > Java' 카테고리의 다른 글
7장. 컬렉션과 제네릭 #2 ArrayList 컬렉션, Iterator 인터페이스 (0) | 2020.06.16 |
---|---|
7장. 컬렉션과 제네릭 #1 개요, Vector 컬렉션 (0) | 2020.06.15 |
6장. 패키지와 활용 #1 패키지 (0) | 2020.06.14 |
5장. 상속 #6 인터페이스 vs 추상클래스 (0) | 2020.06.14 |
5장. 상속 #4 추상 메소드/클래스 (0) | 2020.06.13 |
댓글