1. 특징 - 객체 지향 언어 - 가비지 컬렉션에 의한 메모리 자동 관리 - 멀티 쓰레드 지원 - JVM 위에서 동작하기 때문에 특정 OS에 종속적이지 않고 이식성이 좋으며 보안성이 좋다. - 다양한 Open 라이브러리가 있다. 1) 상속 - 부모 Class 를 자식이 접근할 수 있도록 물려 받는 방식 2) 추상화 - 객체들의 공통된 특성들을 파악하고 불필요한 특성은 제거하는 과정 3) 캡슐화 - 필드와 메서드를 하나의 단위로 묶고 그 중 일부는 외부에서 사용하지 못하도록 숨긴다. 4) 다형성 - 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있어 다양한 결과를 얻어내는 성질