2014-10-25 2 views
1

JVM이 바이트 코드를 기계어로 해석하는 방법을 알고 있으므로 플랫폼 독립성을 제공합니다. 하지만 JVM이 시스템에서 어떻게 작동하는지 알고 싶습니다.JVM이 어떻게 생겼습니까?

i. 기존의 실행 가능한 프로그램 파일이 JRE에 있습니까? 그렇다면 시스템에 JVM 프로그램을 가져 오기 위해 JRE를 설치해야합니까?

또는 ii. '일단 .java 파일이 컴파일되면 jvm 인스턴스가 생성됩니까?' JVM이 JRE 내부에 사전 존재하지 않지만 JRE의 할당 된 메모리 영역 내에 존재한다는 것을 의미합니까? 실행시 생성 된 실제 CPU의 가상/에뮬레이션은 JVM으로 알려져 있습니다.

JVM이 어떻게 나오는지 확인하십시오.

iii. 또한 'JVM의 인스턴스'가 무엇을 의미하는지 알고 싶습니다.

+0

[이것은 혼란 스러울 것입니다] (http://www.makeuseof.com/tag/java-virtual-machine-work-makeuseof-explains/). 나머지는 경험으로 올 것이다;) – Domi

답변

2

JVM은 JRE의 일부입니다. JRE를 설치할 때 JVM을로드하는 프로그램이 설치됩니다.

인스턴스은 현재 실행중인 JVM입니다. JVM을 실행하려면 실행 파일이 있어야하지만 동시에 여러 번 실행했을 수도 있습니다. 실행될 때마다 새 인스턴스가 만들어집니다. JVM이 종료되면 인스턴스가 파기됩니다.

2

JRE 이며 모든 Java 응용 프로그램이 액세스 할 수있는 JVM + 표준 라이브러리입니다.

예, JRE를 설치하면 JVM도 설치됩니다.

때마다

당신은 당신이 JVM의 새로운 인스턴스를 시작하고

java com.foo.Bar 

를 시작하고,이 JVM 인스턴스가 인수로 전달 된 Bar 클래스를 실행합니다. 당신은 당신의 머신에서 여러개의 자바 프로그램을 병렬로 실행시킬 수 있고, 각각의 자바 프로그램은 JVM의 인스턴스를 가지고있다.

2

JRE 내에있는 기존 실행 가능 프로그램 파일입니까? 그렇다면 시스템에 JVM 프로그램을 설치하려면 JRE를 설치해야합니까?

Java Runtime Environment는 실제로 컴퓨터에 설치해야하는 별도의 프로그램입니다. JRE를 얻으면 JVM (프로그램이 실행되는 곳)이 생깁니다.

'.java 파일이 컴파일되고 jvm 인스턴스가 만들어지면 무엇을 의미합니까?' JVM이 JRE 내부에 사전 존재하지 않지만 JRE의 할당 된 메모리 영역 내에 존재한다는 것을 의미합니까? 실행시 생성 된 실제 CPU의 가상/에뮬레이션은 JVM으로 알려져 있습니다.

실제로는 JRE에 이미 존재하는 가상 시스템입니다. 한 번에 컴퓨터에서 Java를 실행하는 많은 응용 프로그램을 가질 수 있으며 JVM의 다른 인스턴스에서 실행될 것입니다. 나는 컴파일이 JVM의 새로운 인스턴스를 만들지는 않을 것이라고 주장하지만, Java 애플리케이션 (또는 심지어 동일한 자바 애플리케이션을 여러 번 실행)은 으로 정확하게의 새 인스턴스를 생성한다. JVM.

0

JVM은 다음과 같습니다.

A 사양 - Java 가상 머신의 작업이 지정되었습니다. 그러나 구현 공급자는 알고리즘을 선택하기 위해 독립적입니다. 해당 구현은 Sun 및 다른 회사에서 제공 한 것입니다.

구현 : - 구현은 JRE (Java Runtime Environment)로 알려져 있습니다.

런타임 인스턴스 : - Java 클래스를 실행하기 위해 명령 프롬프트에 java 명령을 쓸 때마다 JVM 인스턴스가 생성됩니다.

관련 문제