當前位置:首頁 » 操作系統 » java虛擬機源碼

java虛擬機源碼

發布時間: 2022-05-01 15:28:47

『壹』 為什麼java編譯成位元組碼解釋執行而不是直接解釋執行源碼

為了跨平台
編譯成的位元組流文件.class,與硬體和操作系統無關,這是跨平台基礎,然後具體執行,再用各自平台解釋器,解釋成本地機器碼
更多交流,進我空間
------------------------------------------
java是一種編譯+解釋的語言,編譯的結果本身保證了代碼安全和版權,如果全部解釋源代碼,象早期的ASP,那JAVA就不敢用於銀行、證劵等安全性較高的場合

『貳』 java工作原理

Java工作原理
由四方面組成:

(1)Java編程語言
(2)Java類文件格式
(3)Java虛擬機
(4)Java應用程序介面
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類 ,通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用 。

『叄』 JAVA虛擬機的技術難度比操作系統難嗎

兩者各有難點,個人覺得都很難,否則Sun就可以造一個和微軟一樣的操作系統, 而微軟也可以造一個虛擬機來和Sun對抗, 事實上微軟後來真的造了類似的東西出來, 微軟為了把java程序員吸引到他的平台上來,就有了VJ++。 後來有了 C# 平台。 但都是沒有像java那樣做得專業。 Sun是沒那麼容易被打敗的.所以你不覺得java的虛擬機還有點技術含量的吧? 哈哈

現在從技術細節上來分析:
1。 操作系統所面對的技術是有 內存管理、進程調度、設備管理等等等等
2。 相對於虛擬機,它相當於一個大管家,所有java做出來的應用,都先經過虛擬機,再由虛擬機轉交給操作系統。在這個意義上,虛擬機相當於一個大型軟體,它可以管理其它的軟體。然而,在虛擬機下面也運行著大大小小的N個java程序,也需要對這些程序進行內存管理,進程的調度。它為它下面的所有程序做好了內存安全機制,垃圾回收機制,try異常捕捉機制等等,(普通的C程序沒有這些) 在這個意義上,虛擬機又像是一個操作系統;

補充樓主的補充:

C語言的程序無法做到在一個平台上製作,代碼拿到另一個平台編譯後就可以運行! 最重要的原因是位元組長度問題,如在32位機器上一個整數佔4個位元組,但在64位機器上就佔8個位元組。 這時程序編譯就會出錯。
一個位元組佔8位,所以32位有4個位元組,所以32位機器每次進行操作的單位是4位元組,而64位機器是8位元組,這是速度明顯快過32機的原因。
所以~~~~~~~ 很多在windowsXP下可以跑的游戲和軟體在Windows Vista下去跑就會掛掉。 或者根本不給你安裝.

虛擬機在這兩年內是不太可能開源的,sun是有限制地進行了開源,他開源的是他的一部分Java編程語言, 你用這些java代碼是開源的,用它們來製作軟體,但是軟體必須跑在虛擬機之上,虛擬機就不是開源的了。也許過幾年java會做一些虛擬機的開源項目出來,但現在還不會。
另一方面,sun也做了一些開源項目, 如收購的Hibernater,mySql,等等

Bea是不是由sun做的我不太清楚,不過看Bea和sun的關系還是很緊的,我想既使不是sun做的,那技術也來源於sun

在嵌入式開發界,有很多公司都己經在開發虛擬機,但這些只是sun的冰山一角。這些虛擬機只能運行在手機、電視機頂盒等上面跑Kjava的 cdc和cldc程序
離sun的差距還挺大, 但過幾年世界上也許會有新的sun公司出來. 呵呵,讓我們拭目以待

『肆』 .java為後綴的源文件可以直接被java虛擬機載入運行嗎

不可以,要先編譯,方法是:
在cmd命令行下,輸入javac命令,後面跟上你的java源文件。
編譯成功後,就可以運行了!

『伍』 詳細介紹什麼是Java虛擬機

Java虛擬機(Java Virtual Machine,簡稱 JVM)
JVM也是一個軟體,不同的平台有不同的版本。我們編寫的Java源碼,編譯後會生成一種 .class 文件,稱為位元組碼文件。Java虛擬機就是負責將位元組碼文件翻譯成特定平台下的機器碼然後運行。也就是說,只要在不同平台上安裝對應的JVM,就可以運行位元組碼文件,運行我們編寫的Java程序。

而這個過程中,我們編寫的Java程序沒有做任何改變,僅僅是通過JVM這一」中間層「,就能在不同平台上運行,真正實現了」一次編譯,到處運行「的目的。

JVM是一個」橋梁「,是一個」中間件「,是實現跨平台的關鍵,Java代碼首先被編譯成位元組碼文件,再由JVM將位元組碼文件翻譯成機器語言,從而達到運行Java程序的目的。
所以,運行Java程序必須有JVM的支持,因為編譯的結果不是機器碼,必須要經過JVM的再次翻譯才能執行。即使你將Java程序打包成可執行文件(例如 .exe),仍然需要JVM的支持。

『陸』 java源代碼如何用

java源代碼是txt格式的.java文件,用記事本就可以打開。
用eclipse打開java文件的方式是:
如果java文件是一個eclipse工程(根目錄帶有.project文件),用file/import/general/exist java project/(大概是)然後找到你的目錄。
否則需要自己新建一個工程file/new/java project
然後把java文件拷貝到.src目錄下。
.class文件是直接的編譯好的文件,可以用jad把.class文件反編譯成java文件,不過反編譯的代碼和原來的代碼不一定完全一樣。

『柒』 java虛擬機工作原理

從宏觀上介紹一下Java虛擬機的工作原理。從最初編寫的Java源文件(.java文件)是如何一步步執行的,如下圖所示,首先Java源文件經過前端編譯器(javac或ECJ)將.java文件編譯為Java位元組碼文件,然後JRE載入Java位元組碼文件,載入系統分配給JVM的內存區,然後執行引擎解釋或編譯類文件,再由即時編譯器將位元組碼轉化為機器碼。主要介紹下圖中的類載入器和運行時數據區兩個部分。

『捌』 怎樣把一個java源代碼做成一個軟體成品

  1. 其實就是用一個外部程序 調用java虛擬機運行你的java程序。

  2. 可以做一個批處理文件,在裡面調用java 虛擬機運行你的java程序。

  3. 也可以用某種編程語言,像vb ,c 或c++編個程序,生成exe,能調用java虛擬機運行你的程序,很簡單的。

【源代碼】

源代碼(也稱源程序),是指一系列人類可讀的計算機語言指令。 在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。

『玖』 請問通過Java虛擬機先編譯源代碼為位元組碼再由各平台解釋器解釋 各平台都有什麼

java編譯後的位元組碼-----Windows平台的java虛擬機----》Windows認識的
java編譯後的位元組碼---------》Lin ux平台的java虛擬機-------》Lin ux平台
java編譯後的位元組碼---------MacOS平台的java虛擬機——》MacOS平台
這3個平台基本是電腦大多數了 ,其他平台我也不知道有哪些了
手機平台 安卓和蘋果。。。主流2個

『拾』 急求深入理解Java虛擬機JVM高級特性與最佳實踐 源碼

這方面的書我倒是沒有看過 ,但是我看過一半的 java 。。。。編程思想 挺不錯 很厚 講java 講的很到位 那本書適合 開發2-4年java程序員看 我推薦你看下 對要是找到 關於java虛擬機的 源碼和高級特性 最好也給我一份 謝謝 研究研究

熱點內容
微指令的編譯方法有哪一些 發布:2024-10-05 19:02:10 瀏覽:884
android離線定位 發布:2024-10-05 18:36:40 瀏覽:858
ipad4密碼忘記怎麼辦 發布:2024-10-05 18:36:07 瀏覽:237
黑莓加密天線 發布:2024-10-05 18:30:07 瀏覽:849
編程入行年齡 發布:2024-10-05 18:29:24 瀏覽:538
伺服器地址訪問不到 發布:2024-10-05 18:20:55 瀏覽:689
手機解鎖忘記密碼多少錢 發布:2024-10-05 18:14:25 瀏覽:785
linux亂碼問題 發布:2024-10-05 18:00:25 瀏覽:543
訪客儀需要電腦做伺服器嗎 發布:2024-10-05 17:57:57 瀏覽:10
怎麼在u盤設置密碼 發布:2024-10-05 17:55:23 瀏覽:580