Can you summarize the following document?
        
  據技術規範所述,Java虛擬機器是一部抽象(虛擬)的計算機。但技術規範未定義使用的垃圾回收演算法及優化Java虛擬機器指令的內部演算法,這主要是為了不給實現者帶來過多困擾與限制。所有的Java程式僅可在對Java虛擬機器的抽象技術規範的具體實現環境中才可執行。  自Java平臺標準版(J2SE)5.0起,Java虛擬機器的技術規範改為由Java社群流程開發制定(JSR 924)。2006年,JSR 924對技術規範進行了變更,支援更改類檔案格式的提議(JSR 202)。Java虛擬機器的技術細節以藍皮書的形式釋出,其前言稱: 甲骨文公司的一款Java虛擬機器名為HotSpot;另一款自BEA Systems繼承而來的名為JRockit。淨室設計版Java實現有Kaffe、IBM J9及Skelmir's CEE-J。甲骨文公司擁有Java商標權,且可能將其用於認證其他實現是否能完全匹配甲骨文的技術規範。

  Java位元組碼的組織單位之一是類。類載入器實現必須識別並載入任何為Java類格式的檔案。任何實現也可識別其他二進位制檔案,但必須識別類檔案。  類載入器以下列嚴格順序執行三個基礎任務:  通常而言,共有兩種類載入器型別:引導類載入器(Bootstrap Class Loader)及使用者定義類載入器(User Defined Class Loader)。  每款Java虛擬機器實現均必須有載入受信類的引導類載入器。Java虛擬機器技術規範不對類載入器尋找類的方式作出指定。

  Java虛擬機器以原始值(整數及浮點數)及引用的方式執行,其本質上是一個32位的機器。64位的codice_1和codice_2型別資料被原生支援,但需要在幀的區域性變數或運算元棧中佔用兩個儲存單元(單個單元為32位)。codice_3、codice_4、codice_5及codice_6均為符號擴充型別(codice_6使用零擴充套件),且以32位整數的形式(與codice_8型別相同)運作。較小的資料型別僅有少量用於載入、儲存於型別轉換的特定指令。codice_3型別被視為8位codice_4值,0代表codice_11,1代表codice_12。(雖然《Java虛擬機器規範第二版》闡明codice_3被認為是一種資料型別,但除型別特徵的名字修飾及boolean陣列型別外codice_3和codice_4無太大區別。codice_3型別的方法簽名為codice_17 而codice_4的型別簽名為codice_19。布林型陣列搭載資料型別codice_20,但每個元素使用8個位元組,同時Java虛擬機器不內建將布林資料包裝成位陣列的功能,除此之外其與codice_4陣列大同小異。在其他用途中,Java虛擬機器實際上不知道codice_3型別,因為用於操作布林型資料的指令與操作codice_4的指令完全相同。)  Java虛擬機器擁有用於儲存物件及陣列的垃圾回收堆。程式碼、常量及其他類資料均儲存於“方法區”中。方法區邏輯上是堆的一部分,但虛擬機器的實現可能會區分兩者,從而可能不對方法區進行垃圾回收。每個Java虛擬機器執行緒均有其自己的呼叫棧(Java虛擬機器棧),用於儲存幀。當呼叫方法時,Java虛擬機器將新建一個幀;方法退出時,幀將自動消除。  每幀均提供一個“運算元棧”及一個“區域性變數”陣列。運算元棧用於計算運算元和接收被呼叫方法的返回值,而區域性變數與暫存器的用途相同,也用於傳遞方法引數。故Java虛擬機器既是堆疊機器,也是暫存器機。

  Java虛擬機器擁有進行下列任務的指令集:  指令集存在的目的是為了保證二進位制檔案的相容性。每個獨立宿主作業系統需要對Java虛擬機器及執行時環境的不同實現。這些Java虛擬機器以相同方式語義解析位元組碼,但具體實現可能有所不同。比模擬位元組碼更復雜的是在相容且高效的情況下實現必須對映至不同的宿主作業系統的Java核心API。  上述指令集通過操作共同的執行命令,而非以使用特定指令集架構的原生資料型別的方式執行。

  Java虛擬機器語言是指使用Java虛擬機器託管的有效類檔案來表示功能的任意程式語言。類檔案中含有Java虛擬機器指令集(Java位元組碼)、符號表及其他輔助資訊。類檔案是用於表達編譯後的類及介面的二進位制格式,與硬體及作業系統無關。  市面上有多種Java虛擬機器語言,既有移植至Java虛擬機器的舊語言,也有全新的語言。JRuby及Jython可能為最知名的移植語言之二;除此之外,也有從零編寫的全新語言,如熱門的Clojure、Apache Groovy、Scala及Kotlin。Java虛擬機器語言的一大顯著特徵是都互相相容,舉例來說,Scala庫可與Java程式互用,反之亦然。  Java 7虛擬機器在Java平臺上實現了《JSR 292:動態型別語言支援》。此特性由達芬奇機器專案開發完成,其目的旨在延伸Java虛擬機器的功能,進而支援除Java外的其他語言。

  由於JVM並不是專為Java所實現的執行時,實際上只要有其他程式語言的編譯器能生成正確Java bytecode檔案,則這個語言也能實現在JVM上執行。  以下為原生就在JVM上實現執行的語言:  以下為實現了相應的JVM編譯器的語言及其編譯(解釋)器,意味著下列語言可以使用基於Java開發的編譯器進行編譯或解釋:
Java虛擬機器(英語:Java Virtual Machine,縮寫為JVM),一種能夠執行Java bytecode的虛擬機器器,以堆疊結構機器來進行實做。最早由太陽微系統所研發並實現第一個實現版本,是Java平臺的一部分,能夠執行以Java語言寫作的軟體程式。