자바 소스 파일의 확장자는 .java, 컴파일된 클래스 파일의 확장자는 .class 이다.
기존의 언어의 문제점인 컴퓨터 플랫폼 간에 호환성이 없어, 플랫폼에 따라 소스를 다시 컴파일하거나 아예 프로그램을 재작성해야 하는 단점을 해결하기 위해 개발된 언어이다.
자바는 한 번 작성하면 하드웨어나 운영체제 플랫폼에 상관없이 어디에서나 실행 가능하다.
WORA(Write Once Run Anywhere)
① 자바의 클래스 파일에 저장되는 것은 바이트 코드이다.
② 자바의 클래스 파일은 자바 가상 기계가 설치된 어떤 곳에서도 실행된다.
③ 자바는 링크 과정 없이 컴파일러에 의해 바로 바이트 코드가 생성된다.
④ 하나의 클래스 파일에는 컴파일된 클래스가 여러 개 저장된다.
JDK는 자바 컴파일러와 같은 개발 도구를 지원하며, JRE는 개발 도구를 지원하지 않는다. JDK에는 JRE를 포함하고 있다. 자바 응용 프로그램을 개발하고자 하는 개발자에게는 JDK가 필요하다.
① 리눅스 컴퓨터에 설치된 자바 가상 기계와 윈도우 운영체제에 설치된 자바 가상 기계는 서로 다르게 구현되었지만, 동일한 자바 응용 프로그램에 대해 동일한 결과를 낸다.
② 자바 프로그램은 자바 가상 기계 덕분에 플랫폼 독립적이다.
③ 바이트 코드는 자바 가상 기계만이 실행할 수 있는 명령어 코드이다.
④ 자바 가상 기계는 JDK나 JRE에 포함되어 있지 않으며, 따로 설치해야 한다.