자바의 특징
- 운영체제에 독립적이다.
- JVM(자바가상머신)이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달
- 자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적
- 자바로 작성된 프로그램은 운영체제와 하드웨어에 관계없이 실행가능
- 자동 메모리 관리
- 자바로 작성된 프로그램이 실행되면, 가비지컬렉터(garbage collector)가 자동적으로 메모리를 관리해줌 -> 프로그래머는 따로 메모리를 관리하지 않아도 된다.
- 멀티쓰레드 지원
- 자바에서 개발되는 멀티 쓰레드 프로그램은 시스템과 관계없이 구현가능. 관련된 라이브러리가 제공됨
- 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당
- 동적 로딩을 지원
JVM(자바 가상 머신)
- JAVA 애플리케이션
- JVM
- OS
- 하드웨어
-> Java 애플리케이션은 JVM을 거쳐서 OS로 전달됨. 실행시에 해석(interpret)됨
자바 프로그램의 실행과정
Hello.java 작성 -> 컴파일 -> Hello.class 생성 -> 실행
- 컴파일 : 사람이 이해할 수 있는 언어를 컴퓨터가 이해할 수 있는 언어로 바꿔주는 과정
진행순서
1. 프로그램 실행에 필요한 클래스를 로드
2. 클래스 파일을 검사(파일형식, 악성코드 체크)
3. 지정된 클래스에서 main을 호출