1. java.lang 패키지
1) 기본 클래스 포함
2) import문없이 사용 가능
1. Object클래스
주요 메서드 |
특징 |
1) equals(Object obj) // 주소값 비교 |
public boolean equals(Object obj){ return (this==obj); } ↓오버라이딩 public boolean equals(Object obj){ if(obj!=null && obj instanceof Person){ return id=-((Person)obj).id; }else{ return false; } } |
2) hashCode() |
1. 값의 주소값을 이용, 해시코드 생성 2. 문자열 기반: String.hashCode() 3. 주소값 기반: System.identityHashCode(Object x) 4. Object클래스: 주소값 기반 String클래스: 문자열 기반 |
3) toString() |
1. Object.toString public String toString(){ return getClass().getName()+"@"+Integer.toHexString(hasCode()); } 2. 인스턴스에 대한 정보: 인수턴스 변수-> 문자열 3. 인스턴수 변수-> 문자열 오버라이딩 1) Date클래스 2) String클래스 3) StringBuffer클래스 |
4) clone() |
1. 자신 복제, 새 인스턴스 생성 2. 인스턴스값만 복사 3. Cloneable 인터페이스 구현: 데이터 보호 4. 접근 제어자 protected -> public 5. try - catch 작성 6. 공변변환 타입 1) 오버라이딩: 조상메서드 반환타입 -> 자손클랫 반환타입 7. 얕은 복사 & 깊은 복사 1) 인스턴스 값 복사 & 인스턴스 값 + 참조 객체 복사 8. 정의 public class Object{ ... protected native Object clone() throws cloneNotSupportedException; ... } 9. 사용 public Object clone(){ Object obj=null; try{ obj=super.clone(); }catch(CloneNotSupportedException e) {} return obj; } ↓ 사용 Point copy=(Point)original.clone(); |
5) getClass() |
1) 클래스-> 메모리 로더에 의해 동적 메모리 로드 2) 있으면 객체 참조 반환 없으면 path경로-> class 객체 변환 3) 객체 얻는 법 1. 생성된 객체 class cObj = new Card().getClass(); 2. 클래스 리터럴 Class cObj = Card.class; 3. 클래스 이름 Class cObj = class.forName("Card"); fronName은 db드라이버를 메모리에 올릴 때 주로 사용 |
2. String클래스
특징 |
1) 문자열 저장 & 관련 메서드 |
2) public finalr class String implements ~{ // 다른 클래스의 조상 불가 private char[] value; // char[] 배열로 문자열 저장 } |
3) 변경 불가능한 클래스 -> StringBuffer클래스 |
4) 문자열 비교 1. 리터럴: 재사용, Stirng str1 = "abc"; 2. 생성자: 메모리할당, String str1= new String("abc"); |
5) 문자열 비교 오버라이딩: equals(), toString() |
6) 문자열 리터럴 1. String 인스턴스 그자체, 내용 변경 x 2. JVM내 상수저장소에 저장 |
7) 초기화 string : "" // 빈문자열: 가능 char :'' // 빈문자열: 불가 |
8) String.format(): 형식화된 문자열 String str = String.format("%d 더하기 %d는 %d입니다.",3,5,3+5) |
9) 기본값-> String변환 1) valueOf String.valueOf(i); |
10) String -> 기본값 1) pareseInt Integer.parseInt("100"); 2) valueOf Integer.valueOf(i); // 오토박싱(반환타입:Integer -> int) |
11) hashCode(): 문자열 기반 생성 |
3. StringBuffer클래스 & StringBuilder 클래스
클래스 |
특징 |
|||||||||
1) StringBuffer 클래스 |
1. 문자열 변경 가능 2. StringBuffer append() {} StringBuffer sb = new StringBuffer("abc"); sb.append("123"); 3. 배열 크기 작으면 배열 생성 -> 배열 값 복사 4. toString(): 오버라이딩o->인스턴스 변수 ->문자열 오버라이딩 equals() : 오버라이딩x
5. 멀티쓰레드에 안전하도록 동기화 되어있음 |
|||||||||
2) StringBuilder |
1) StringBuffer - 동기화 = StringBuilder |
4. Math 클래스
1) 수학계산
2) 구성: 상수 2개, static 메서드
5. 래퍼(Wrapper) 클래스
특징 |
1) 기본형 값-> 객체 변환 |
2) 생성자 인자: 변환할 값 |
3) equals() 오버라이딩: 값 비교 |
4) toString() 오버라이딩: 문자열 비교 |
5) 비교연산자 x -> compareTo() |
6) 상속계층도 |
7) 오토박싱 & 언박싱 오토박싱: 기본형 값-> 래퍼클래스 객체 언박싱 : 반대 ※ 지네릭스에서도 사용 |
2. 유용한 클래스
1. java.util.Objects 클래스 |
1) Object클래스의 보조 클래스 2) 모든 메서드 static 3) 객체 비교 & Null체크에 유용 4) compare() static int compare(Object a, Object b, Comparator c) 같으면 0, 크면 양수 5) eqauls() public static voolean equals(Object a, Object b){ return (a==b) || (a!=null && a.equals(b)) } |
※ 남궁성 강사님 수업과 '자바의 정석'을 토대로 정리하였습니다.
'Develop > Bit Camp & 자바의 정석' 카테고리의 다른 글
[6.스프링+MyBatis]1.테이블 생성 및 개발 준비 (0) | 2018.08.17 |
---|---|
16. 네트워킹 (0) | 2018.05.23 |
11. 컬렉션 프레임워크 (0) | 2018.05.20 |
12-2. 애너테이션 (0) | 2018.05.09 |
오라클설치 (0) | 2018.05.08 |
댓글