하나의 기능을 객체형태로 만들어 각각의 객체들을 모아 하나의 프로그램을 만드는 것으로 컴퓨터가 하나의 프로그램이라면 각각의 부품(CPU, Ram, 등)을 객체라고 이해하면 편하다.
독립성을 가진 언어
자바는 운영체제의 독립적이다.
Java가 개발된 당시 프로그래밍 언어들은 플랫폼 즉 OS별로 종속성을 가지고 있었기 때문에
프로그램을 개발환 환경에서만 동작했었다. 하지만 자바는 JVM(Java Virtual Machine)을 통해 플랫폼 독립성을 가지게끔 개발되었다. 따라서 모든 OS환경에서 독립적으로 구동이 가능하다.
멀티스레드 프로그래밍
자바는 하나의 프로그램에서 여러개의 스레드가 동시에 실행할 수 있는 환경을 지원한다. 또 C/C++은 운영체제의 도움을 받아 멀티스레드를 관리하지만 자바는 운영체제의 도움없이도 멀티스레드 프로그레밍이 가능하다.