Java中有两种包的导入机制
来源:互联网 发布:淘宝店铺退款多了封号 编辑:程序博客网 时间:2024/04/30 13:13
Java中有两种包的导入机制:
单类型导入(single-type-import),例如import java.io.File
按需类型导入(type-import-on-demand),例如import java.io.*
单类型导入,仅仅是导入导入一个public类或者接口。
按需类型导入,根据名字就可以看出,并不是导入整个包,而是仅仅导入当前类(接口)所需的类或接口。
因为单类型导入和按需类型导入对类文件定位的算法是不一样的,java编译器会从启动路径(bootstap),扩展目录(extension),用户类目录下去定位需要导入的类,而这些目录仅仅给出了类的顶层路径。
编译器的类文件定位方法大致可以为:
绝对路径 = 顶层路径名 - 包名 - 文件名.class
对于单类型导入,因为包名和文件名都已经确定,可以一次性查找定位到。
对于按需类型导入则比较复杂,编译器会把包名和文件名进行排列组合,然后对所有的可能性进行类查找定位。
例如:package com;
import java.io.*;
import java.util.*;
当你的类文件中使用到了File类,那么File可能会出现在以下几个地方:
1 File File没有package语句,编译器首先搜索无名包。
2 com.File File类属于当前包。
3 java.lang.File 自动导入
4 java.io.File
5 java.util.File
需要注意的是,上面的第4种情况下,编译器找到java.io.File后并不会停止下一步的搜寻,而是把所有的可能性都查找完以确定没有类冲突,如果有类冲突,则会报错,删除不用的类后再编译。假使此时的顶层路径有3个,编译器则会进行3*5=15次查找。
在了解包导入原理之后,可以得出如下结论:按需类型导入不会降低java代码的执行效率,但会影响到java代码的编译速度。
使用单类型导入至少有两个好处:
1 提高编译速度
2 避免命名冲突。
这点从JDK的源码中包导入方式也可以看出。
- Java中有两种包的导入机制
- Java中有两种包的导入机制
- java包导入机制的研究
- java包导入机制的研究。
- java 静态导入机制
- Java包导入机制的研究与解析
- Java包导入机制的研究与解析
- Java反射机制,实现Excel的导入与导出
- Java中两种包导入机制总结
- Python的包导入机制
- Java类型信息与用反射机制编写通用的Excel导入导出
- Java类型信息与用反射机制编写通用的Excel导入导出
- java的静态导入
- java的静态导入
- Java的静态导入
- java的静态导入
- java的静态导入
- java包的导入
- 其它的
- android 动画效果 (转)
- JAVA面试题解惑系列
- 安装RHEL时需要先了解的一些内容
- Java多线程编程总结
- Java中有两种包的导入机制
- 事务隔离机制(hibernate 应用)
- 怎么就成了这样
- 逃离北上广
- awk学习笔记
- int float double 最大值,最小值
- WINCE BSB中不同后缀的文件讲解--.bib文件
- Ubuntu 使用 Discuz搭建论坛
- Oracle 如何修改用户名