Java 언어의 탄생
Java는 제임스 고슬링과 연구원들이 개발한 객체 지향적 프로그래밍 언어
"Write Once, Run Anywhere"
'한 번 작성하면 어디에서나 실행된다'는 의미로,
자바로 개발된 프로그램은 자바 실행 환경 JRE가 설치된 모든 환경에서 실행이 가능하다는 것을 의미함
Java의 특징
1) 객체 지향 언어
- 유지보수가 쉬움
- 재사용성이 높음 (ex. 상속, 오버라이딩, 다형성)
2) 운영 체제 플랫폼에 영향을 받지 않음
- ex. MAC, Windows, Linux 등 다양한 환경에서 사용할 수 있음
JVM(Java Virtual Machine)
운영체제는 자바 프로그램을 바로 실행할 수 없는데 그 이유는 자바 프로그램은 완전한 기계어가 아닌,
중간 단계의 바이트 코드이기 때문에 이것을 해석하고 실행할 수 있는 가상의 운영체제가 필요함
JVM의 주요 역할
바이트코드 실행
- 자바 컴파일러는 자바 소스 코드를 컴파일하여 바이트코드로 변환함
- JVM은 이 바이트코드를 해석하고 실행함
자바 메모리 관리
- JVM은 자동 메모리 관리를 제공하며, 가비지 컬렉션을 사용하여 더 이상 필요하지 않은 객체를 제거함
- 이렇게 함으로써 개발자는 명시적으로 메모리를 해제할 필요가 없어짐
예외 처리
- JVM은 예외 처리를 관리하며, 예외가 발생할 때 해당 예외를 적절하게 처리하거나 전파함
스레드 관리
- JVM은 멀티스레딩을 지원하고, 다중 스레드 환경에서 자바 애플리케이션을 실행함
클래스 로딩 및 동적 클래스 생성
- JVM은 클래스 로딩을 관리하고, 필요한 클래스를 동적으로 로드하며 인스턴스화할 수 있음
성능 최적화
- JVM은 바이트코드를 실제 기계 코드로 컴파일하고, 실행 시 성능 최적화를 수행하여 높은 실행 속도를 제공함
네이티브 인터페이스 제공
- JVM은 자바 언어로 작성된 코드와 네이티브 코드(예: C 또는 C++) 간의 상호 작용을 지원함