1996년 출시한 객체지향 프로그래밍 언어
자바의 특징
- 운영체제에 독립적이다.
JVM만 설치되면 된다. JVM은 거의 모든 운영체제별로 준비가 되어있다.
따라서 하나의 코드로 모든 환경에서 사용이 가능하다. - 객체지향언어이다.
코드의 재사용성, 유지보수가 편리하다 - 자동 메모리 관리
메모리를 관리해주는 가비지 컬렉터가 존재해 개발자는 메모리 관리에 힘을 쓰지 않고 개발에만 집중할 수 있다. - 네트워크와 분산처리를 지원한다.
- 멀티쓰레드를 지원한다.
멀티쓰레드는 운영체제에 따라 구현 방법도 상이하고, 처리방법도 다르지만 자바는 멀티쓰레드 관련 API를 제공한다.
따라서 사용법만 알면 손쉽게 구현이 가능하다 - 동적로딩을 지원한다.
애플리케이션 실행 시 모든 클래스가 로딩되지 않고 필요한 시점에 로딩할 수 있다.
JVM(Java Virtual Machine)
모든 자바 코드를 실행하기 위한 프로그램

- 단점
일반 애플리케이션은 OS만 거치고 컴퓨터로 코드 전달따라서 속도가 더 느리다.
하지만 극복을 위해 요즘엔 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 향상된 최적화 기술이 적용되어서 속도 격차를 많이 줄였다. - 장점
하나의 코드로 모든 플랫폼에서 실행이 가능하다.