1995년 자바의 아버지라고 불리는 제임스 고슬링과 그의 동료들에 의해서 시작된 프로젝트다. Java는 원래 가전제품을 제어하기 위한 언어로 고안되었지만 웹의 등장으로 엄청난 성공을 거두면서 주류 언어가 되었다.
한국에서는 정부나 기업의 시스템 통합 프로젝트가 대부분 자바로 구현되기 때문에 자바는 기업용 시장에서 두각을 나타내고 있다.
시스템 통합이란? System Integration의 약자로 기관이나 기업의 업무 관리를 소프트웨어화하는 것을 의미한다. 예를 들어 병원에 대한 SI라고 한다면 환자의 상태와 의료진의 상태에 따라서 효율적으로 진료가 이루어지게 한다거나, 제조 공정이라고 한다면 생산설비의 상태를 시스템적으로 관리하는 것이 있을 것이다,+기관 홈페이지 만들기

Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다. 이것은 구체적인 소프트웨어가 아니고 그 소프트웨어의 설계도라고 할 수 있다. 소프트웨어에서는 설계도라는 표현 대신에 명세서(spec, specification)이라는 말을 사용한다. 이 명세서에 따라서 Java가 만들어지게 된다.
개발을 할 때 필요한 도구.
JDK(Java Development Kit)는 Java SE의 표준안에 따라서 만들어진 구체적인 소프트웨어다. Java 개발자라면 JDK를 다운받아서 설치해야 한다. 여기에는 Java 프로그램을 실행하면 Java 코드를 컴파일하는 컴파일러와 개발에 필요한 각종 도구 그리고 JRE가 포함되어 있다. 즉 개발자를 위한 자바 버전이다.
JDK의 분류
자바의 개발환경인 JDK에는 3가지가 있다. 이 중에 가장 중요한 JDK는 Java SE다. Java SE는 Java EE나 Java ME의 기반 환경이기도 하므로 무엇을 하든 간에 Java SE를 JDK를 설치해야 한다.
Java SE (Standard Edition)
자바의 핵심으로 일반적으로 자바라고 하면 Java SE를 의미한다.
Java EE (Enterprise Edition)
기업용 시장에서 사용하는 자바 개발환경
Jave Me (Micro Edition)
모바일 개발을 위해서 사용하는 자바 버전
자바 프로그램을 실행할 때 쓰는 것.
JRE(Java Runtime Environment)는 자바가 실제로 동작하는 데 필요한 JVM, 라이브러리, 각종 파일들이 포함되어 있다. 자바로 만들어진 프로그램을 구동하려고 한다면 이것을 설치한다. 일반인을 위한 자바 버전이라고 할 수 있다.
JVM(Java Virtual Machine) JVM은 자바가 실제도 구동하는 환경이다. 자바로 만들어진 소프트웨어는 JVM이라는 가상화된 환경에서 구동되고, 하드웨어나 운영체제에 따라서 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라서 만들어진 JVM이 알아서 해결한다. 즉 하나의 자바 프로그램을 만들면 어떤 환경에서도 실행할 수 있는 것이 바로 JVM의 역할이라고 할 수 있다.
운영체제에 따라서 자바를 실행하는 방법이 조금씩 다르다.

그런데 코드 자체를 바로 실행할 수는 없다. 자바의 문법은 사람만이 이해할 수 있는 형식으로 되어 있기 때문이다. 이 코드를 컴퓨터가 이해할 수 있는 상태로 변환해주는 과정이 필요한데 이것을 컴파일(compile)이라고 하고, 이 작업을 하는 소프트웨어를 컴파일러(compiler)라고 부른다. 자바의 컴파일러는 javac 라는 이름을 가지고 있다. 만약 helloworld.java라는 코드를 컴파일한다면 아래와 같은 식으로 javac를 실행하면 된다. ->바이트 코드로 변환됨-> . class 파일 생성 -> JVM이 이해할 수 있는 코드
javac Helloworld.java
참고
https://opentutorials.org/course/1223/4551
https://opentutorials.org/course/1223/5245
https://opentutorials.org/course/1223/5559