变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

軟件首頁 |  文章首頁
最新更新 軟件分類 設為首頁 加入收藏 聯系我們
當前位置:首頁文章首頁 IT學院 Java

Java包導入機制的研究與解析

作者:東坡下載  來源:uzzf  發布時間:2010-10-14 12:03:04  點擊:

      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語句看起來很長。

文章評論

本類推薦文章

關于本站 | 網站幫助 | 廣告合作 | 下載聲明 | 友情連接 | 網站地圖
Copyright © 20098-2010 uzzf下載站. All Rights Reserved .
主站蜘蛛池模板: 精品久久久久久国产 | 天天综合色天天综合网 | 波多野结衣在线中文字幕 | 第一福利网址导航 | 亚洲国产中文字幕 | 看日本黄大片在线观看 | 三级三级三级a级全黄公司的 | 国产亚洲青色国产 | 午夜伦理影院 | 欧美xxxxhd4k| 免费视频毛片 | 久草视频在线首页 | 免费看黄色一级毛片 | 天天干夜夜躁 | 999久久久国产精品 999热成人精品国产免 | 欧美一区二区日韩一区二区 | 黄色免费观看网站 | 国产精品成人不卡在线观看 | 黄色毛片黄色毛片 | 亚洲伦理精品久久 | 久久看免费 | 国产欧美日韩精品一区二 | 欧美综合国产 | 日韩视频一| 日本人xxxⅹ18hd18hd | 成人短视频在线观看视频 | 特级理论片 | 欧美亚洲免费久久久 | 麻豆国产 | 亚洲国产亚洲综合在线尤物 | 免费人成在线观看播放国产 | 男人使劲桶女人下面动态图片 | 国产高清自产拍av在线 | 好男人午夜www视频在线观看 | 麻豆一区二区三区四区 | 日日操夜夜操天天操 | 午夜影院三级 | 六月丁香激情综合成人 | 在线黄色免费看 | 日韩在线视频免费 | 久色视频在线 |