Simple
- 기존의 C, C++에 비해 배우기 쉽고 간편하다.
- c++의 객체지향 개념에 영향을 받아 설계되었으나 복잡한 C++의 구문(포인터, 다중상속등)들을 제외
- 메모리 할당 후 제거의 필요, 전처리기(Preprocessor )

Object oriented
- 실세계를 모델링한 객체지향언어, 함수나 변수가 아닌 클래스로부터 생성된 개체이용
- 유연(flexible)하며 클래스를 이용한 모듈 중심의 프로그램이 가능
- 필요한 클래스 라이브러리 제공

Portable
- 플랫폼 독립성 (구조에 중립적인 바이트 코드 사용, 이식성 높다)
- 자바 가상 기계(Java Virtual Machine)

Distributed
- 분산 네트워크 환경에 적합 (네트워크상의 파일이나 개체를 사용하여 원격지 프로그램과 상호 동작)
- 자바는 인터넷에 필요한 주요 프로토콜을 지원

Robust
- 실행 중 발생될 오류 처리를 위한 exception handling 제공, 포인터 사용 안함, 자동메모리관리(garbage collection)

Multithreaded
- 하나의 프로그램이 동시에 여러 작업 수행

Secure
- 바이트 코드 검증 (부적절한 클래스접근, 스택의 오버플로우 , 부적절한 형 변환)
- 자바 가상 기계에서 실행되기 때문에 기반 플랫폼의 운영체제나 자원에는 치명적인 문제를 방지할 수 있어 보안이 뛰어남

High-performance
- 다른 인터프리터(basic, perl)보다 빠르게 처리