기원과 이름
1991년 썬 마이크로시스템즈 내부의 그린 프로젝트(Green Project)에서 제임스 고슬링, 마이크 셰리든, 패트릭 노턴이 개발을 시작한 프로그래밍 언어. 셋톱박스·디지털 케이블 TV 등 가전·임베디드 기기를 목표로 설계됐으나, 당시 시장이 받아들이기에는 다소 앞선 기술이었음.
처음에는 고슬링 사무실 밖의 떡갈나무에서 이름을 딴 “오크(Oak)”로 불렸으나, 상표 문제로 사용할 수 없게 되면서 인도네시아산 자바 커피에서 이름을 따 “자바(Java)”로 개칭됨.
실행 모델
자바 소스 파일(.java)은 자바 컴파일러를 거쳐 플랫폼 독립적인 바이트코드 파일(.class)로 변환됨. 이 바이트코드는 자바 가상 머신(JVM)이 운영체제와 하드웨어 위에서 해석하거나 적시 컴파일(JIT)해 실행함.
이 중간 계층 덕분에 동일한 바이트코드는 JVM 구현이 제공되는 윈도·리눅스·macOS 등 여러 환경에서 원칙적으로 재컴파일 없이 실행될 수 있음. “한 번 작성하면 어디서나 실행한다(Write Once, Run Anywhere)”는 자바의 대표적 설계 목표도 이 실행 모델에서 나옴.
에디션과 생태계
자바는 데스크톱·범용 환경의 Java SE(과거 J2SE), 기업용 서버 환경의 Java EE(과거 J2EE), 모바일·임베디드 기기용 Java ME(과거 J2ME)로 분화해 발전함. Java EE는 2017년 Eclipse Foundation으로 이관된 뒤 Jakarta EE라는 이름으로 이어지고 있음.
HotSpot은 대표적인 JVM 구현이며, OpenJDK는 Java SE 플랫폼의 오픈소스 구현과 개발 협업의 중심 프로젝트로 자리 잡음. 코틀린·스칼라·클로저·그루비 등 여러 언어도 JVM 위에서 실행되며 자바 생태계를 확장함.
2017년 이후 자바는 시간 기반 릴리스 모델로 전환해 6개월마다 기능 릴리스를 공개하고, 일부 버전을 장기 지원(LTS) 기준점으로 제공하는 체계를 갖춤.