가장 큰 특징으로 객체지향
클래스 계층구조, 상속성, 다형성, 캡슐와 등
멀티스레드 지원
C/C++ 은 멀티스레드를 사용하기위해 API 호출해야 가능함
소스(.java)와 클래스(.class)파일
하나의 소스파일에는 하나의 퍼블릭만 가능하지만 여러 클래스 작성가능
소스 파일이름과 퍼블릭클래스 이름은 같아야함
클래스 파일에는 단 하나의 클래스만 존재
하나의 자바 소스 파일에다 다수의 클래스를 생성하면 별도 클래스 파일이 생성됨
하나의 main() 메소드
자바 실행은 main 메소드에서 시작해서 두개의 main 메소드가 있을 수 없다
클래스로 캡슐화
자바의 모든 변수나 함수는 클래스안에 선언
클래스 안에서 새로운 내부클래스 작성 가능
패키지
관련 클래스를 패키지로 묶어서 관리