- 차이점
구분 추상 클래스 인터페이스 상속 가능 범위 단일 상속 다중 상속 키워드 extends 사용 implements 사용 추상 메소드 갯수 abstract 메소드 0개 이상 모든 메소드는 abstract abstract 키워드 명시 명시적 사용 묵시적으로 abstract
- 공통점
구분 추상 클래스 인터페이스 자체 인스턴스 생성 생성 불가 생성 불가 다형성 적용 시 상위 타입
활용 가능 유무가능 가능
toString()
equals()
동일비교(연산자 ==): 주소값을 비교한다.
vs 동등비교
- 동등비교는 두 객체의 hashcode 값을 비교한다.
- 따라서 실제 두 인스턴스의 필드값이 달라도 grouping된 hashcode 값이 같을 수 있다.
- 이를 통해 인스턴스들의 특정 멤버들이 동일하면 두 인스턴스가 동등하다고 정의할 수 있다.
hashCode()
methods
equals()
hashcode()
String(immutable object) vs String builder(mutable object) vs String buffer(mutable object)
주소값은 변동이 없고, 배열이 추가되는 식으로 용량이 증가한다.
Parsing
ex)
String colors = "red, yellow, green, purple, blue"; StringTokenizer colorStringTokenizer = new StringTokenizer(colors, ", "); while (colorStringTokenizer.hasMoreTokens()) { String color = colorStringTokenizer.nextToken(); System.out.println(color); }
주의할 점
기본 자료형이 클래스화 된 형식
목적:
방식: (auto-)boxing - 기본자료형을 wrapper 클래스 자료형으로 담는다.
parsing:
"" + 4.0f와 같이 변환하면 편하다.