《Java編程的邏輯》筆記14--代碼的組織機制

代碼的組織機制.png

作用概念

包,類似于電腦中的文件夾,文件夾一般是一個層次結(jié)構(gòu),包也類似。
使用任何語言進(jìn)行編程都有一個相同的問題,就是命名沖突, Java中解決這個問題的方法就是包

關(guān)鍵字

  • package
    (1)聲明其包名
    (2)包名和文件目錄結(jié)構(gòu)必須匹配
  • import
    (1)import需要放在package定義之后,類定義之前
    (2)引入類
    (3)Eclipse中,通過菜單"Source->Organize Imports"或?qū)?yīng)的快捷鍵ctrl+shift+O就可以自動管理引入類
    import是編譯時概念,用于確定完全限定名,在運行時,只根據(jù)完全限定名尋找并加載類,編譯和運行時都依賴類路徑,類路徑中的jar文件會被解壓縮用于尋找和加載類。
  • public/private/protected
    (1)可見性范圍: private < 默認(rèn)(包) < protected < public
    protected可見性包括包可見性

jar包

(1)編譯后的一個或多個包的Java class文件可以打包為一個文件,Java中打包命令為jar,打包后的文件后綴為.jar,一般稱之為jar包。
命令:jar -cvf <包名>.jar <最上層包名>
比如,對前面介紹的類打包,如果Hello.class位于E:\bin\shuo\laoma\Hello.class,則可以到目錄 E:\bin下,然后運行: jar -cvf hello.jar shuo
(2)jar包其實就是一個壓縮文件,可以使用解壓縮工具打開

代碼的組織機制

  • 編譯
    編譯是將源代碼文件變成一種字節(jié)碼,后綴是.class的文件
    這個工作一般是由javac這個命令完成的
  • 連接
    接是在運行時動態(tài)執(zhí)行的
    .class文件不能直接運行,運行的是Java虛擬機,執(zhí)行的就是java這個命令,這個命令解析.class文件,轉(zhuǎn)換為機器能識別的二進(jìn)制代碼,然后運行
    連接就是根據(jù)引用到的類加載相應(yīng)的字節(jié)碼并執(zhí)行
  • 過程
    Java編譯和運行時,都需要以參數(shù)指定一個classpath,即類路徑。類路徑可以有多個,對于直接的class文件,路徑是class文件的根目錄,對于jar包,路徑是jar包的完整名稱(包括路徑和jar包名),在Windows系統(tǒng)中,多個路徑用分號;分隔,在其他系統(tǒng)中,以冒號:分隔。 在Java源代碼編譯時,Java編譯器會確定引用的每個類的完全限定名,確定的方式是根據(jù)import語句和classpath。如果import的是完全限定類名,則可以直接比較并確定。如果是模糊導(dǎo)入(import帶.*),則根據(jù)classpath找對應(yīng)父包,再在父包下尋找是否有對應(yīng)的類。如果多個模糊導(dǎo)入的包下都有同樣的類名,則Java會提示編譯錯誤,此時應(yīng)該明確指定import哪個類。 Java運行時,會根據(jù)類的完全限定名尋找并加載類,尋找的方式就是在類路徑中尋找,如果是class文件的根目錄,則直接查看是否有對應(yīng)的子目錄及文件,如果是jar文件,則首先在內(nèi)存中解壓文件,然后再查看是否有對應(yīng)的類。

寫在最后

都看到這里,保存思維導(dǎo)圖,順便給個贊唄!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應(yīng)用。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 4,650評論 1 114
  • JAVA面試題 1、作用域public,private,protected,以及不寫時的區(qū)別答:區(qū)別如下:作用域 ...
    JA尐白閱讀 1,182評論 1 0
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,088評論 0 4
  • 作者:成 富, 軟件工程師, IBM 中國軟件開發(fā)中心 類加載器(class loader)是 Java?中的一個...
    Android技術(shù)研究閱讀 3,912評論 0 74
  • 乳腺增生如何貼: 剛開始三天:增生處(痛點)+太沖 之后以下穴位每天輪流貼 增生處(痛點)+三陰交 增生處(痛點)...
    suzy_66c2閱讀 145評論 0 0