추상클래스
- 객체의 추상적인 상위 개념으로 공통된 개념을 표현할 때 사용한다. 단일 상속만 가능하다. 추상클래스를 상속하는 집합간에는 연관관계가 있다.
인터페이스
- 구현 객체가 같은 동작을 한다는 것을 보장하기 위해 사용한다. 다중 상속이 가능하다. 인터페이스를 구현하는 집합간에는 관계가 없을 수 있다.
클래스와 객체
- 클래스 : 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다.
- 객체 : 식별 가능한 개체 또는 사물이다. 객체는 구별 가능한 식별자, 특징적인 행동, 변경 가능한 상태를 가진다. 인스턴스들을 통칭하는 용도로 사용한다.
정적(static)이란?
- static은 클래스 멤버라고 하며, 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다.
- static 키워드를 통해 생성된 정적멤버들은 PermGen 또는 Metaspace에 저장되며 저장된 메모리는 모든 객체가 공유하며 하나의 멤버를 어디서든지 참조할 수 있는 장점이 있다.
- 그러나, GC의 관리 영역 밖에 존재하기 때문에 프로그램 종료시까지 메모리가 할당된 채로 존재한다. 너무 남발하게 되면 시스템 성능에 악영향을 줄 수 있다.
자바의 원시타입
- boolean(1), char(unsigned 2), byte(1), short(2), int(4), long(8), float(4), double(8)
- 사실 JVM에 의존적이기 때문에 정확한 크기라기 보다는 대략적인 크기이다.