제임스 고슬링을 비롯한 선 마이크로시스템스 연구원들이 개발한 프로그래밍 언어로, 가전제품이나 휴대용 장치에 사용하는 소프트웨어를 만들기 위해 독립적이고 안정적인 프로그래밍 언어가 필요하여 개발했다.
(1) 다양한 플랫폼에서 실행이 가능하다.
자료 출처: Do it! 자바 프로그래밍 입문 (이지스퍼블리싱)
C 언어로 개발한 프로그램을 컴파일하면 실행 파일(.exe)이 생성된다. 이 실행 파일은 각 운영체제에 맞게 만들어졌기 때문에, 윈도우 운영체제에서 만들어진 실행 파일은 리눅스 운영체제에서 실행할 수 없고, 그 반대의 경우도 마찬가지이다.
반면, JAVA 언어로 개발한 프로그램을 컴파일하면 실행 파일이 아닌 바이트 코드(.class)가 생성된다. 이 바이트 코드는 완벽한 실행 파일이 아니며, 바이트 코드를 실행하기 위해서는 각 운영체제에 맞는 자바 가상 머신 (JVM: JAVA Virtual Machine)이 필요하다. 자바 가상 머신이 바이트 코드를 각 운영체제에 맞는 최종 실행 파일로 변환해주므로, 다양한 플랫폼에서 사용할 수 있는 것이다.
(2) 객체 지향 언어다.
JAVA는 객체 지향 언어이므로, 유지보수가 쉽고 확장성이 좋다.
객체 지향 프로그래밍? 여러 객체의 협력을 통해 프로그램을 구현하는 방법
(3) 안정적이다.
(4) 오픈 소스를 활용할 수 있다.
기본적인 기능의 클래스 뿐만 아니라 자료구조, 네트워크, 입출력, 예외 처리 등에 최적화된 알고리즘 라이브러리를 제공하는 자바 개발 키트 (JDK: Javav Development Kit)를 사용하여 빠르게 프로그램을 완성할 수 있다.
현재 자바를 활용한 수많은 오픈 소스가 개발되어 있으므로, 이러한 오픈 소스들을 연계하여 풍부한 기능을 빠르고 쉽게 구현할 수 있다.
오픈 소스 = 소스 코드가 개방되어 있는 소프트웨어