2013-11-23 2 views
1

Является ли платформа JVM (Java Virtual Machine) зависимой?Является ли машина виртуальной машины Java зависимой?

В чем преимущество использования JVM, а Java - это переведенный язык?

+2

Виртуальная машина Java зависит от платформы. По крайней мере, код C должен быть перекомпилирован для каждой достаточно разной платформы. Сами классы Java («байт-коды» и окружающая их среда) независимы от платформы. Вам нужно очень стараться придумать Java-программу, которая будет работать на одной системе, а не на другой. –

+0

Компилятор конвертирует java-программу в байт-коды или .class-файл. Затем задание, которое преобразует байтовый код в машинный код, с помощью которого интерпретатор или JVM, иначе JVM действует как интерпретатор, не так ли? – JithinMechery

+0

JVM - это интерпретатор - «виртуальная машина». А самые современные JRE (среды исполнения Java) включают JITC (компилятор «точно в момент времени»), который динамически преобразует байт-коды «горячих» методов в машинный код при запуске программы. –

ответ

1

Да, обычно a JVM зависит от платформы в том смысле, что она реализована для конкретной платформы.

Преимущество использования JVM заключается в том, что, по крайней мере теоретически, он делает код, написанный на платформе Java агностиком, и поэтому один и тот же код может работать на любой платформе без изменения кода.

0

Есть много преимуществ, связанных с тем, что виртуальная машина (например, виртуальная машина Java) с ее «записью один раз, выполняйте любые обещания»; среди них -

  1. Ваше приложение становится операционная система независимой
  2. Ваше приложение становится архитектура независимой

Другими словами, ваше приложение будет (по крайней мере, несколько) будущего, который касается меняющийся пейзаж конкурентоспособных поставщиков. Тем не менее (IMO) самым большим преимуществом является то, что Java-приложения и фреймворки работают одинаково в Linux, Mac и Windows. Хотя каждая из них нуждается в собственной реализации виртуальной машины (например, фактическая среда выполнения Java Runtime Environment является специфичной для платформы, она доступна в source form).

0

Части JVM, что диалог с операционной системой зависит от платформы. Но байт-код Java является независимым или, по крайней мере, должен быть (возможно, существуют крайние случаи).

Преимущество JVM заключается в простом компиляции и возможности запуска исполняемого байт-кода на любой поддерживаемой платформе. Это противоречит тому, как дела обстояли раньше, когда вам приходилось перекомпилировать в соответствии с другой ОС или процессором.

Btw, Java не является переведенным или интерпретируемым языком, как PHP или javascript. Это фактически скомпилировано с JVM, действующим как посредник или слой абстракции над операционной системой.

0

JVM сам не является независимым. Когда вы загружаете jdk, вы можете увидеть, что сначала вам нужно выбрать платформу. Вам нужно очистить свой тип машины и ОС, включая unix-like, windows или mac, 32-bit или 64-bit. Но мы всегда говорим, что java - независимый от платформы язык программирования, потому что JVM работает как средний уровень между вашим Java-приложением и ОС подчеркивания, поэтому разработчик Java может просто сосредоточиться на одной JVM, игнорируя изомерию операционных систем и аппаратных сред.

0
JVM is a specification that provides runtime environment in which java bytecode can be executed. 

Jvm толкующего ваш байткода в машинный код понятного.

Виртуальная машина Java выполняет следующие операции:

- Loads code 
- Verifies code 
- Executes code 
- Provides runtime environment 

Для этого код должен быть написан,
Так Реализация спецификации делается здесь (ВС обеспечивает в основном).
Эта реализация JRE.

JVM ТАКЖЕ КАК СКАЗАТЬ следующие вещи должны произойти:

- Memory area 
- Class file format 
- Register set 
- Garbage-collected heap 
- Fatal error reporting etc. 

Так да JVM сильно зависят от платформы, найти деталь работает здесь JVM Details

Смежные вопросы