java中导包的原理_Java包导入机制的研究与解析

总结如下:

关于这两种导入类型大家各有所爱, 众说纷纭。 这里分析一下这两种导入类型的大致任务原理供大家参考。

单类型导入比拟好了解, 仅仅导入一个public类或者接口。 而对于按需类型导入, 有人曲解为导入一个包下的所有类, 看名字就知道, 他只会按需导入, 也就是说它并非导入整个包, 而仅仅导入以后类需要使用的类。 因为单类型导入和按需类型导入对类文件的定位算法是不一样的。 java编译器会从启动目录(bootstrap), 扩展目录(extension)和用户类途径下去定位需要导入的类, 而这些目录进仅仅是给出了类的顶层目录。 编译器的类文件定位办法大致可以了解为如下公式:

对于单类型导入很复杂, 因为包明和文件名都曾经确定, 所以可以一次性查找定位。

对于按需类型导入则比拟复杂, 编译器会把包名和文件名停止陈列组合, 例如:

当你的类文件中用到了File类, 那么可能出现File类的中央如下

File\\File类属于无名包, 编译器会首先搜索无名包

需要留意的中央就是, File类之后并不会中止下一步的寻觅, 而要把所有的可能性都查找完以确定是否有类导入抵触。 假设此时的顶层途径有三个,

留意:假设在查找完成后, 编译器发现了两个同名的类, 那么就会报错。 要删除你不必的那个类, 然后再编译。

了解以上原理之后, 我们可以得出这样的结论:按需类型导入是相对不会降低Java代码的执行效率的, 但会影响到Java代码的编译速度。

JAVA检查JDK的源代码就知道SUN的软件工程师一般不会使用按需类型导入。 因为使用单类型导入至多有以下两点好处:

1。 进步编译速度。

当然, 使用单类型导入会使用你的import语句看起来很长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值