Java說「寫一次,到處跑」。甚至像C,C++等其他語言也只寫了一次,但每次平臺變化時都只重新編譯一次。因此,它不應該成爲「編譯一次,到處運行」,對於Java編程的新手來說更加清晰和精確?Java平臺獨立性
-2
A
回答
1
當您編譯.java
文件時,它會生成一個.class
文件,這個文件被稱爲Byte Code
,當我們談論C/C++時,情況並非如此。
現在生成的字節碼可以在任何地方運行(不論平臺),只要機器上有JVM。
當我們說寫一次就意味着要產生一段可用的代碼,現在你可以不執行,你得在執行前編譯一個.java文件,所以沒有必要提一次編譯明確。
最後,所有重要的是你應該理解的概念,而不是單詞。
1
C++使用單個編譯器將C++代碼編譯爲基於Unix/Linux操作系統的.exe(用於Windows的可執行文件格式)和.out或ELF文件格式。所以它會生成一個物理的可執行文件(位代碼格式),它專門針對它遵循的操作系統。
現在在Java的情況下,我們的源代碼(.java)文件將被編譯爲.class文件(字節代碼格式),然後每個操作系統將擁有自己的JRE版本(Java Run-time Environment)這是一個解釋器,幫助運行/執行生成的.class文件到OS內存(將其轉換爲位代碼格式)。所以在這種情況下,我們只需要編譯器來編譯我們的類,解釋器將幫助在相應的操作系統中執行那個類。換句話說,對於Java來說,編譯一次就可以執行。
如果我們想在一個平臺上編寫一次並運行到C++的不同平臺方法,我們可能會遵循以下兩個步驟中的任何一個。
- 我們可以在一個特定的操作系統中編寫一次,並採用相同的源代碼到不同的操作系統,然後在不同的平臺上重新編譯和執行相同的代碼。另一種方法是,一旦我們在windows中生成我們的.exe文件,然後轉到Linux並使用像'Wine'這樣的移植工具/軟件,它將能夠在Linux上通過windows模擬和類似的方式實際運行windows .exe文件應該有工具通過仿真在Windows上運行Linux .out文件。
仍然沒有一種方法可以被認爲是用於C++的WORA概念。 更多相關Java不是唯一的跨平臺語言存在,還有其他語言如C#等也都遵循相同的概念在編譯時不生成位代碼格式,因爲位代碼只是機器/平臺或操作系統特定的。
我希望你現在清楚瞭解它。
相關問題
- 1. 驗證Java平臺獨立性
- 2. 瞭解Java平臺的獨立性
- 3. 平臺獨立流
- 4. 獨立於Java的usb輸入平臺
- 5. Java 7平臺獨立的Base64?
- 6. 平臺獨立文件存儲Java
- 7. Java - howto平臺獨立輸出
- 8. GenericPortlet - FileUpload平臺獨立
- 9. 平臺獨立的c + + DLL
- 10. 平臺獨立.proj文件
- 11. 獨立於平臺的OSGi控制檯
- 12. Java控制檯獨立?
- 13. 爲什麼Java平臺在理論和平臺上獨立於實踐?
- 14. 是Runtime.getRuntime()。exec()平臺獨立的嗎?
- 15. 試圖加載文件平臺獨立
- 16. .pyc平臺是獨立的嗎?
- 17. 獨立於平臺的屏保與Qt
- 18. 獨立於平臺的資源管理
- 19. Eclipse平臺是獨立的嗎?
- 20. 如何讓maven構建平臺獨立?
- 21. C++ std庫平臺是獨立的嗎?
- 22. 獨立於平臺的時間計算
- 23. #ifdef用CMake獨立於平臺的DEBUG
- 24. Python中的SFTP? (獨立於平臺)
- 25. 獨立於平臺的付費安裝
- 26. 平臺獨立的eclipse設置
- 27. 獨立於平臺的/ dev/C++中
- 28. 是Javac是獨立於平臺
- 29. .winmd文件平臺是獨立的嗎?
- 30. 寫作BMP文件(獨立平臺)
我懷疑模棱兩可的措辭是新手Java程序員的最大障礙。 – Kayaman
在學習java近一年後,我明白了這個概念。 –
你今天而不是一年前瞭解它是否重要?學習Java更難嗎?如果你從一開始就知道你會更高級一些嗎? – Kayaman