Saltar al contento

Machina virtual Java

De Wikipedia, le encyclopedia libere
Machina virtual Java
instantia de: run-time system[*], computing platform[*], cross-platform software[*], virtual machine[*], technical standard[*], specification[*]
subclasse de: run-time system[*]


Commons: Java Virtual Machine

Le machina virtual Java, dicite anque Java Virtual Machine o JVM, es le componente del platteforma Java qui exeque le programmas traducite in bytecode post un prime compilation.

Principio

Le passos qui debe esser facite pro exequer un programma scribite in linguage Java es le sequente:

  1. Un programmator usa un editor de texto o un ambiente de disveloppamento integrate (IDE) como Eclipse, NetBeans o IntelliJ IDEA pro scriber un o plus classes Java.
  2. Un compilator transforma le programma in bytecode, qui es un legier abstraction del codice machina.
  3. Le bytecode es providite a un machina virtual Java qui lo exeque.

Le bytecode es generalmente producite per le compilation de codices fonte (o file fonte) scribite in linguage Java, anque si il es possibile producer bytecode a partir de altere linguages como Scala, Clojure o Groovy[1].

Le JVM es definite per un specification, mantenite per Sun (nunc Oracle). Qualcunque systema qui se comporta in un maniera coherente con tal specification es considerate como un particular implementation del JVM. Il ha implementationes de programmatura per practicamente tote le systemas operative moderne, gratuite o commercialisate. In addition, il ha implementationes special pro particular ambientes hardware/software, como telephonos mobile e palmari), e etiam implementationes hardware como Jazelle.

Le disponibilitate de implementationes del machina virtual Java pro diverse ambientes operative es le clave del portabilitate de Java, proclamate in le slogan write once, run everywhere ("scribe un vice, exeque in tote locos"). Le machina virtual crea un ambiente unic de execution functionante qualcunque specificitate del systema de operation subordinate:

Programmatura applicative Java
Java Virtual Machine
Systema de operation

Implementationes

IcedTea e Zero

Pro substituer le partes de HotSpot qui era sub licentia non aperite, le projecto IcedTea es nascite.[2] Le machina virtual disveloppate in tal projecto se appella HotSpot Zero Assembly, appellate anque simplemente Zero.[3] Le projecto ha anque le scopo de supportar un numero major de famiglias de processatores in comparation al machina virtual de Oracle. Pro facer isto, tote le codice assembly presente in HotSpot ha essite rescribite in C++, in un maniera de poter esser compilate super plus de architecturas.[4]

Le altere implementationes

Numerose altere partes providite regularmente implementationes del machina virtual Java, normalmente con le intento de competer con le implementation de Oracle pro le performantias; in alcun casos illos es implementationes commercial. Illos es disponibile anque altere implementationes in codice aperite; inter le plus note on pote citar Waba[5]. Le specification del JVM es dictate e actualisate per Oracle in quanto initiator e mantenitor del projecto, sed es sovente disattendite per multes del implementationes non de Oracle del JVM qui es in circulation, specialmente per quanto reguarda le framework que cata JVM include. Dunque, le diverse JVM non es totalmente compatibile inter illos e on debe haber attention in le scriber le programmas, si on vole que illos functiona sur cata JVM. Le cosa melior a facer a tal scopo esserea de non usar le ultime characteristicas del linguage Java introducite per Oracle in le JVM le plus recente e usar le API "stabile", dunque illos pote esser presente in le JVM Oracle de varie versiones.

  1. The Adventurous Developer's Guide to JVM Languages. Recuperate le 2015-05-30.
  2. Projecto IcedTea Archived 2014-10-06 at the Wayback Machine
  3. Zero and Shark FAQ. Archivo del original create le 2009-08-23. Recuperate le 2016-05-07.
  4. Zero and Shark: a Zero-Assembly Port of OpenJDK
  5. Waba