<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    內蒙古java團隊

    j2se,j2ee開發組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Java包導入分析

    Posted on 2010-07-02 09:57 帥子 閱讀(271) 評論(0)  編輯  收藏 所屬分類: j2ee技術專區
    java中有兩種包的導入機制,總結如下:

      單類型導入(single-type-import),例如import java.io.File;

      按需類型導入(type-import-on-demand),例如 import java.io.*;

      關于這兩種導入類型大家各有所愛,眾說紛紜。這里分析一下這兩種導入類型的大致工作原理供大家參考。

      單類型導入比較好理解,僅僅導入一個public類或者接口。而對于按需類型導入,有人誤解為導入一個包下的所有類,其實不然,看名字就知道,他只會按需導入,也就是說它并非導入整個包,而僅僅導入當前類需要使用的類。

      既然如此是不是就可以放心的使用按需類型導入呢?非也,非也。因為單類型導入和按需類型導入對類文件的定位算法是不一樣的。java編譯器會從啟動目錄(bootstrap),擴展目錄(extension)和用戶類路徑下去定位需要導入的類,而這些目錄進僅僅是給出了類的頂層目錄。編譯器的類文件定位方法大致可以理解為如下公式:

      頂層路徑名 \ 包名 \ 文件名.class = 絕對路徑

      對于單類型導入很簡單,因為包明和文件名都已經確定,所以可以一次性查找定位。

      對于按需類型導入則比較復雜,編譯器會把包名和文件名進行排列組合,然后對所有的可能性進行類文件查找定位。例如:


      package?com;
      import?java.io.*;
      import?java.util.*;

      當你的類文件中用到了File類,那么可能出現File類的地方如下

      File \\ File類屬于無名包,就是說File類沒有package語句,編譯器會首先搜索無名包

      com.File \\ File類屬于當前包

      java.lang.File \\編譯器會自動導入java.lang包

      java.io.File

      java.util.File

      需要注意的地方就是,編譯器找到java.io.File類之后并不會停止下一步的尋找,而要把所有的可能性都查找完以確定是否有類導入沖突。假設此時的頂層路徑有三個,那么編譯器就會進行3*5=15次查找。

      注意:如果在查找完成后,編譯器發現了兩個同名的類,那么就會報錯。要刪除你不用的那個類,然后再編譯。

      了解以上原理之后,我們可以得出這樣的結論:按需類型導入是絕對不會降低Java代碼的執行效率的,但會影響到Java代碼的編譯速度。

      查看JDK的源代碼就知道SUN的軟件工程師一般不會使用按需類型導入。因為使用單類型導入至少有以下兩點好處:

      1。提高編譯速度。

      2。避免命名沖突。(例如:當你import java.awt.*;import java.util.*后,使用List的時候編譯器將會出編譯錯誤)

      當然,使用單類型導入會使用你的import語句看起來很長。

    主站蜘蛛池模板: 亚洲国产香蕉人人爽成AV片久久 | 亚洲国产精品综合久久久| 最新国产精品亚洲| 亚洲熟妇av一区二区三区漫画| 国产AV无码专区亚洲AV麻豆丫| 日韩在线天堂免费观看| 日本亚洲免费无线码| 18禁无遮挡无码网站免费| 亚洲免费二区三区| 毛片免费vip会员在线看| 亚洲日本在线电影| 国产又黄又爽又猛的免费视频播放| 亚洲精品久久无码| www国产亚洲精品久久久| 九九九精品视频免费| 亚洲国产精品成人综合色在线婷婷| 99国产精品免费视频观看| 97亚洲熟妇自偷自拍另类图片| 6080午夜一级毛片免费看6080夜福利| 亚洲毛片无码专区亚洲乱| 一二三四在线播放免费观看中文版视频| 国产成人亚洲综合一区| 曰皮全部过程视频免费国产30分钟| 国产亚洲精品欧洲在线观看| 亚洲成a人片在线播放| 亚洲中文字幕人成乱码| 51精品视频免费国产专区| 亚洲大香伊人蕉在人依线| 好吊妞视频免费视频| 特级毛片全部免费播放| 国产V亚洲V天堂无码久久久| 久久久久久曰本AV免费免费| 亚洲国产成人手机在线观看| 亚洲一级特黄大片无码毛片| 十九岁在线观看免费完整版电影| www.亚洲日本| 久久经典免费视频| 日产久久强奸免费的看| 亚洲福利一区二区| 免费一看一级毛片全播放| 无码午夜成人1000部免费视频|