java 애플리케이션 |
---|
JVM |
OS(Windows) |
컴퓨터(하드웨어) |
Java 애플리케이션은 JVM을 한번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점을 가지고 있다.
그러나 요즘엔 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러
와 향샹된 최적화 기술이 적용되어서 속도의 격차를 많이 줄였다.
Java 애플리케이션은 JVM하고만 상호작용을 하기 때문에 OS와 하드웨어에 독립적이라 다른 OS에서도 프로그램의 변경없이 실행이 가능한 것이다.
일반 애플리케이션 |
---|
OS(Windows) |
컴퓨터(하드웨어) |
JDK를 설치하면 자상가상머신(JVM)과 자바클래스 라이브러리(Java API)외에 자바를 개발하는데 필요한 프로그램들이 설치된다.
- JDK: 자바개발도구(Java Development Kit) =
- JRE: 자바실행환경(Java Runtime Environment), 자바로 작성된 응용프로그램이 실행되기 위한 최소환경.
- JDK = JRE + 개발에 필요한 실행파일(javac.exe 등)
- JRE = JVM + 클래스라이브러리(Java API)
c:\jdk1.8\work>java Hello
public class Hello {
public static void main(String[] args) {
}
}
main메서드의 첫 줄부터 코드가 실행되기 시작하여 마지막 코드까지 모두 실행되면 프로그램이 종료되고, 프로그램에서 사용했던 자원들은 모두 반환한다.