你知道java import是什么意思吗?它的用法又是怎样的呢?对于这两个方面不是很了解的小伙伴可以一起通过下面的文章内容来进行一下了解呢。
java对象名称分为包(package)名和类(class)名两部分,package名称就好比是姓,class名称就好比是名字。
举个例子:
java.lang.String
这里的话,就指明了String类属于java.lang这个包。
但是呢问题来了,有的句名是很长的,在使用某一些类的时候需要写上一大长串的代码,整体非常的繁琐开发效率也会降低,所以这时候,就引入了import。
在java文件开头地方使用import导入某些类,java文件开头的地方,先说明会用到那些类别,之后,就能够在代码当中只用类名指定某个类,不要去写包名了。
java当中import的用法详解
单类型导入-import java.io.File;
按需类型导入-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次查找。
查看JDK的源代码就知道SUN的软件工程师一般不会使用按需类型导入。
所以的话,使用单类型导入至少有下面的好处:
1、避免命名冲突;
2、提高编译速度;
对于import的介绍就到这里了,假如你还想了解更多的java基础知识,那么就请继续关注奇Q工具网来进行了解吧!
推荐阅读: