java基礎知識整理

前世

java的歷史來源背景

背景在網上百度隨便都能找的到就不細說了,作爲一個之前學習C++的程序員來說,學習java儘量對比學習,理解可以更加透徹。
學習角度:java相對C++摒棄了哪些特性,又增加了哪些特性?

java的包、jdk、jar包、jre

包(package)

package 特點

1.程序中如果有package語句,該語句一定是源文件中的第一條可執行語句;
2.package語句的前面只能有註釋或空行;
3.一個文件中最多只能有一條package語句;
4.包的名字有層次關係,各層之間以點分隔(上例中的“czf.abc.aaa”)
5.包層次必須與Java開發系統的文件系統結構相同;
6.通常包名中全部用小寫字母;
7.當使用包說明時,程序中無需再引用(import)同一個包或該包的任何元素;
8.import語句只用來將其他包中的類引入當前名字空間中。而當前包總是處於當前名字空間中.

package使用注意
  • 同一個源文件中的類,都在同一個包中,同一個包中的內容互相訪問,不用導包;
  • 導包的時候 以下兩句:
import czf.*;
import cn.Info;

這兩句,只在編譯的時候有後者稍快一點,在運行的時候沒有任何區別。

  • 如果要設置classpath ,要設置到最外層的文件夾所在的目錄上,比如:
package czf.abc;
set classpath=cn的所在的文件夾名稱
  • 對於父包和子包,在使用上沒有任何關係,只要不在一個包中,引用的時候就必須導入包;

JDK(Java Development Kit)簡單理解就是Java開發工具包

JDK中都包含了什麼

JAR包

JAR(Java ARchive,Java 歸檔)是一種與平臺無關的文件格式,可將多個文件合成一個文件。用戶可將多個 Java applet 及其所需組件(.class 文件、圖像和聲音)綁定到 JAR 文件中,而後作爲單個的簡單 HTTP(Hypertext Tranfer Protocal,超文本傳輸協議)事務下載到瀏覽器中,從而大大提高下載速度。JAR格式也支持壓縮,從而減小了文件的大小,進一步縮短下載時間。另外,applet編寫者也可在 JAR 文件中用數字簽名的方式簽寫各項以確認其來源。它用 Java 編寫,可與現有的 applet 代碼完全向後兼容且可充分擴展。

jar包的作用
  • 發佈和使用類庫
  • 作爲應用程序和擴展的構建單元
  • 作爲組件、applet 或者插件程序的部署單位
  • 用於打包與組件相關聯的輔助資源
使用JAR文件有以下好處
  • 安全。能夠對JAR文件進行數字簽名,只讓能夠識別數字簽名的用戶使用裏面的東西。
  • 加快下載速度。在網上使用applet時,如果存在多個文件而不打包,爲了能夠把每個文件都下載到客戶端,需要爲每個文件單獨建立一個HTTP連接,這是非常耗時的工作。將這些文件壓縮成一個JAR包,只要建立一個http連接就能夠一次下載所有的文件。
  • 壓縮。使文件變小,JAR的壓縮機制和zip完全相同
  • 包封裝。能夠讓JAR包裏面的文件依賴於統一版本的類文件。
  • 可一致性。JAR包作爲內嵌在Java平臺內部處理的標準,能夠在各種平臺上直接使用。

JRE(Java Runtime Enviroment)是Java的運行環境

包含java程序必須的環境集合,包含了JVM標準實現及java核心類庫。它包括了Java虛擬機、Java平臺核心類和支持文件。

java的主流IDE
  • eclipes
  • idea
java虛擬機

JVM(Java虛擬機)是一個抽象機器。它被稱爲虛擬機,因爲它實際上不存在。它是一個規範,提供可以執行Java字節碼的運行時環境。它還可以運行那些用其他語言編寫並編譯爲Java字節碼的程序。
JVM可用於許多硬件和軟件平臺。JVM,JRE和JDK是平臺相關的,因爲每個操作系統的配置彼此不同。但是,Java與平臺無關。JVM有三個概念:規範,實現和實例。

JVM主要執行以下任務:

1、加載代碼

2、驗證代碼

3、執行代碼

4、提供運行時環境

SDK

soft development kit,軟件開發工具包,這是一個大的概念,比如你要開發某一應用,那你可能需要相關的SDK,你開發安卓應用,你就需要android SDK,你開發java應用程序,你可能就要java SDK。

java中jdk、jre、jvm的運行關係

參考鏈接

java、jre、jdk區別

JVM是一個規範,提供可以執行Java字節碼的運行時環境。

JRE = 運行Java應用程序的JVM +庫。

JDK = JRE +開發Java應用程序的工具。

java程序運行過程

參考博客-java內存
Jvm-代碼編譯過程
java程序執行過程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章