C/C++與Java的區別


轉載請注明原文地址:http://www.cnblogs.com/ygj0930/p/5827273.html
 
 
C/C++:
           
C/C++代碼——編譯(不同的系統編譯出不同的機器碼,所以同一個C/C++文件不一定可以在某些系統執行,因為編譯出的機器碼不同)——機器碼————在操作系統中由硬盤讀取到內存中運行——內存——CPU——輸出結果
 
 
 
 
Java:
                  
Java代碼————編譯得到字節碼文件(.class)————JVM執行字節碼文件(字節碼在虛擬機上運行,虛擬機相當於翻譯官,不同的系統JVM不同,轉換規則不同,把同一個字節碼文件轉換為相應的系統的機器碼)————機器碼在相應系統運行——內存——CPU——結果
 
 
由於JVM的存在,只需在不同的系統上安裝相應的JVM,同一個.class文件在相應的系統的JVM運行就會輸出相應系統能解析的機器碼,從而成功運行。
這就是,一次編譯,到處運行。
打個比方,就是:
一本漢字寫的書(源碼),去到不同的國家(系統),每個國家有相應的翻譯官(JVM虛擬機)把漢字翻譯成其所在國家的文字(比如這本書傳到英國被翻譯成英文書),之后就可以在這個國家流傳開了(相當於程序成功運行)。
 
另外,補充一點: 
JAVA有兩特性:
移植性:一次編譯,到處運行(上面已解釋)
安全性:自動回收內存中不常用的命令垃圾,防止內存溢出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM