프로그래밍: 컴퓨터가 일을 수행하도록 프로그래밍 언어로 프로그램(명령어 집합)을 만드는 작업
컴파일: 프로그래밍 언어를 컴퓨터가 실행 가능한 기계어로 만드는 작업
컴파일러: 프로그래밍 언어를 기계어로 변환하는 프로그램 (예_ 자바 컴파일러, gcc 등)
JDK(Java Development Kit) : 자바에서 제공되는 개발용 라이브러리. 계속 버젼이 올라가고 있음
JRE(Java Runtime Environment) : 자바 프로그램이 실행되는 환경. 8.0까지 무료로 제공 됨
JVM(Java Virtual Machine) : 자바 가상 머신으로 프로그램이 실행되는 환경인 JRE 가 설치되어 있어야 함
자바는 본래 가전제품과 휴대용 장치에 사용하는 소프트웨어 언어로서 1991년 개발되었다. 이전에는 주로 C언어를 사용했는데, C언어는 플랫폼에 영향을 받고 시스템이 다운되는 일이 잦았으므로 자바를 개발할 때는 안정성이 최우선적으로 중요했다.
이렇게 개발된 자바프로그래밍의 특징은 다음과 같다.
다음 그림을 보면 C 소스 코드는 운영체제 환경에 따라 다른 컴파일러를 사용하여, 각 환경에서 실행 가능한 파일을 각각 생성한다.
반면, java 소스 코드는 하나의 java compiler를 통해 바이트 코드를 생성하고, 이 바이트 코드가 각 운영환경에 따른 java virtual machine 위에서 읽히며 실행된다. 따라서 플랫폼에 영향을 받지 않는다.
프로그램의 구현을 시간 흐름 순으로 바라보는 절차 지향 프로그래밍(Proedural programming)과 다른 프로그래밍 개념이다.
객체 지향 프로그래밍은 Java, C++, C#, Python, JavaScript, Ruby 등 여러 언어에서 이루어지고 있다. (엄밀히 말하자면, 자바스크립트는 클래스 베이스의 객체 지향 언어가 아니고, 객체 지향 영향을 받은 프로그래밍 언어이다.)
객체 지향 프로그래밍은 (절차 지향 프로그래밍에 비해) 재사용성이 좋고, 유지보수가 편리하며, 코드 관리가 용이하고 신뢰성 높은 프로그램을 생산할 수 있다는 장점이 있다.
자바는 다양한 프로그램에 사용되고 있으며, 대표적으로 웹 서버를 구현과 안드로이드 프로그래밍, 게임 프로그래밍으로 잘 알려져 있다.