자바는 썬 마이크로시스템즈(Sun Micorsystems)에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어(object-oriented programming language)이다. 그 후 2010년에 오라클이 썬 마이크로시스템즈를 인수하면서 Java의 저작권을 소유하게 되었다.
자바는 1991년 썬의 엔지니어들에 의해서 고안된 오크(Oak)
라는 언어에서부터 시작되었다.
제임스 고슬링과 아서 밴 호프와 같은 썬의 엔지니어들은 가전제품에 탑재될 소프트웨어를 만드는 것을 목적
으로 C++을 확장해서 사용하려 했지만 C++로는 그들의 목적을 이루기에 부족함이 존재하였다. 그래서 C++의 장점을 도입하고 단점을 보완한 Oak라는 언어를 개발하였다.
Oak의 등장 후 여러 종류의 운영체제를 사용하는 컴퓨터들이 통신하는 인터넷이 등장하자 운영체제에 독립적인 Oak가 이에 적합하다고 판단하여 Oak를 인터넷에 적합하도록 개발 방향을 변경하면서 이름은 자바(Java)로 반경하였으며, 자바로 개발한 웹브라우저인 '핫 자바(Hot java)'
를 발표하고 그 다음 해인 1996년 1월에 자바의 정식 버전을 발표
하였다.
그 당시만 해도 자바로 작성된 애플릿(Applet)
은 정적인 웹페이지에 사운드와 애니메이션 등의 멀티미디어 적인 요소들을 제공할 수 있는 유일한 방법이었기 때문에 많은 인기를 얻었고 단 기간에 많은 사용자층을 확보할 수 있었다. 그러나 보안상의 이유로 최신 웹브라우져에서 애플릿을 더 이상 지원하지 않게 되었다.
대신 최근 자바는 서버 쪽 프로그래밍을 위한 서블릿(Servlet)과 JSP(Java Server Page)로 많이 사용
되고 있다.
자바가상머신(JVM)
과 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적
이기 때문에 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM을 활용해야 한다.Write once, run anywhere
라고 표현하기도 한다.상속, 캡슐화, 다형성
이 잘 적용된 순수한 객체지향언어이다.가비지컬렉터(garbage collector)
가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도 되며, 프로그래머가 보다 프로그래밍에 집중할 수 있도록 지원한다.다양한 네트워크 프로그래밍 라이브러리(Java API)
를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.쓰레드에 대한 스케줄링(scheduling)을 인터프리터가 담당
하게 된다.필요한 시점에 클래스를 로딩하여 사용
할 수 있다는 장점이 있다.