设为首页 加入收藏

TOP

java包导入机制的研究
2014-11-23 20:20:35 】 浏览:6535
Tags:java 导入 机制 研究

  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语句,编译器会首先搜索无名包


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java串行端口技术协议 下一篇java序列化Serializable

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目