001-Java跨平台原理
由源文件(.java)--->字節碼文件(.class)(二進制文件)-----> 解釋---->Unix,Win,Linux等機器。
1.一次編譯,到處運行
2.編譯器的作用:將源文件編譯成class文件
3.虛擬機的作用:將字節碼文件解釋成對應平台機器碼並執行。
4.java可以實現跨所有的平台?只有提供並且安裝了相對應的虛擬機就可以跨該平台。
5.虛擬機和解釋器的關系:解釋器是虛擬機的一個重要的組成部分。
6.Java語言的執行要經過編譯和解釋兩個階段。
C語言跨平台原理
由源文件(.c)--->編譯成相對應的機器碼---->Unix,Win,Linux
1.多次編譯,到處運行
2.C和Java哪個速度快?C語言是直接執行編碼,Java是先將class文件解釋成機器碼再執行。
002-Java的安全性
1.取消了指針
2.垃圾回收機制-------不需要程序員直接控制內存回收,避免了程序員忘記及時回收,導致內存泄漏,避免程序錯誤回收程序核心類庫對1內存,導致系統崩潰。
3.異常處理機制-----try,catch,finally,throw,throws五個關鍵字。
4.強制類型轉換:只有滿足強制類型轉換規則的情況下才能強制轉成功。
5.保證了底層安全性:Java在字節碼的傳輸過程中使用了公開密匙加密機制(PKC)
6.在運行環境提供了四級安全保障機制:字節碼校驗器---類裝載器---運行時內存布局--文件訪問限制。
003-Java三大版本
J2SE:數據庫連接,接口定義,輸入/輸出,網絡編程
J2EE:包含了J2SE中的類,還包括了servlet,JSP,XML,事務控制。
J2ME:包含了J2SE中部分類,用於消費電子產品的軟件開發。---------呼機,智能卡,手機,PDA,機頂盒。
J2SE包含於J2EE中,J2ME包含了J2SE的核心類,但新添加了一些專有類
應用場合,API的覆蓋范圍各不相同
004-什么是JVM?什么是JDK?什么是JRE?
JVM------Java Virtual Machine。JVM是Java平台的基礎,和實際的機器一樣,它也有自己的指令集,並且在運行時操作不同的內存區域,它相當於是一個獨立工作的機器,JVM的主要工作是解釋自己的指令集(即字節碼)到CPU的指令集或對應的系統調用,保護用戶免被惡意程序騷擾。 JVM對上層的Java源文件是不關心的,它關注的只是由源文件生成的類文件(.class文件)。
JRE----java runtime environment.光有JVM還不能讓class文件執行,因為在解釋class的時候JVM需要調用解釋所需要的類庫lib。在JDK的安裝目錄里你可以找到jre目錄,里面有兩個文件夾bin和lib,在這里可以認為bin里的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和lib和起來就稱為jre.
JDK---java development kit.
JDK的安裝目錄:
bin: 最主要的是編譯器(javac.exe)
include: java和JVM交互用的頭文件
lib:類庫
jre: java運行環境
JDK是用於java程序的開發,而jre則是只能運行class而沒有編譯的功能。
