`

java import机制 说明

阅读更多
java中有两种包的导入机制,总结如下:

单类型导入(single-type-import),              例如 import java.io.File;

按需类型导入(type-import-on-demand),例如 import java.io.*;



java编译器会从启动目录(bootstrap),扩展目录(extension)和用户类路径下去定位需要导入的类,而这些目录仅仅是给出了类的顶层目录。编译器的类文件定位方法大致可以理解为如下公式:

  顶层路径名 \ 包名 \ 文件名.class = 绝对路径

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

  对于按需类型导入则比较复杂,编译器会把包名和文件名进行排列组合,然后对所有的可能性进行类文件查找定位


译器发现了两个同名的类,那么就会报错。要删除你不用的那个类,然后再编译。

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

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

1。提高编译速度。

2。避免命名冲突。(例如:当你import java.awt.*;import java.util.*后,使用List的时候编译器将会出编译错误)
分享到:
评论

相关推荐

    javaimport、package作用与用法.doc

    Java programming 语言中的 package 和 import 机制是非常重要的概念,它们在 Java 编程中扮演着重要的角色。下面我们来详细了解一下 package 和 import 的作用和用法。 首先,让我们了解一下 package 的概念。...

    import java.awt.docx

    在我们的代码中,我们可以看到 import 语句中包含了 java.awt 和 javax.swing.*,这说明了我们使用的是 Java 的 AWT 和 Swing 工具包。 2. JFrame 和 JDialog 的使用 在我们的代码中,我们可以看到 MainWindow 类...

    java反射机制详解

    ### Java反射机制详解 #### 一、Java反射机制概述 Java反射机制是在Java运行时环境中提供的强大工具,它允许程序在执行过程中动态地获取类的信息并操作类的对象。这一特性使得Java程序具备了高度的灵活性和扩展性...

    Java认证:Java中import使用.doc

    Java 认证:Java 中 import 使用 Java 中的 import 语句是让编译器帮我们打字,让我们在编程时不需要每次都输入完整的类名。import 语句可以将类的名称简写成简称,提高编程效率。 Java 中的 package 机制可以避免...

    java中package和import的作用

    在Java编程语言中,`package`和`import`是非常重要的两个概念,它们分别用于组织代码结构和引入外部类或包,对于理解Java程序的模块化和包管理机制至关重要。 ### Java中的Package #### 1. Package的概念 在Java中...

    InsideJava(Java深度历险)

    import与package机制的探讨:撰写Java程序的人,绝对会遇到import与package机制。只要明白这个机制的运作原理,你会发现Java是一个设计优良的设计;Ant与Java;Java与Office;Visual Studio.net与Java;Java 2 SDK源...

    java连接cache数据库说明,数据库驱动,cache可视化工具

    8. **错误处理和异常处理**:编写健壮的Java代码需要良好的错误处理机制,捕获并适当地处理`SQLException`和其他可能出现的异常。 以上就是关于"java连接cache数据库说明,数据库驱动,cache可视化工具"的主要知识...

    Java实现opc通信协议代码

    4. **opcjava**:opcjava是一个开源的Java OPC UA库,它提供了完整的OPC UA客户端和服务器实现,支持现代的加密和身份验证机制。 5. **UA-Java**:由OPC Foundation维护的UA-Java库,为Java开发人员提供了一个完全...

    java完整性校验解决方案

    import java.security.NoSuchAlgorithmException; import java.security.Provider; import java.security.Security; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util....

    Java岗面试核心MCA版.pdf

    2. import java和javax的区别:import java是导入java包,import javax是导入javax包。 IO流 1. BIO、NIO、AIO的区别:BIO是阻塞式IO,NIO是非阻塞式IO,AIO是异步IO。 2. Files的常用方法:Files类提供了许多...

    Java在线生成图像源码

    总结来说,这个"Java在线生成图像源码"项目利用了Struts框架的Action机制,结合Java的图形库在内存中创建图像,然后直接通过HTTP响应返回给客户端。这种方式避免了硬盘I/O,提高了效率,同时也方便了图像的动态生成...

    Java sdk深度历险

    import与package机制的探讨:撰写Java程序的人,绝对会遇到import与package机制。只要明白这个机制的运作原理,你会发现Java是一个设计优良的设计;Ant与Java;Java与Office;Visual Studio.net与Java;Java 2 SDK源...

    java二级考试操作题

    通过以上分析,我们可以看出,这些知识点涉及到Java编程基础、图形用户界面设计、事件处理机制以及考试技巧等多个方面。对于准备参加Java二级考试的学生来说,掌握这些知识是基本的要求,同时还需要进行充分的练习,...

    Java Telnet客户端实例源码

    import java.io.*; import java.net.*; public class SimpleTelnetClient { public static void main(String[] args) { String server = "远程服务器地址"; int port = 23; try (Socket socket = new Socket...

    mysql-connector-java-8.0.20.jar

    `mysql-connector-java-8.0.20.jar.txt`文件可能是关于这个驱动的文档或说明,可能包含版本信息、使用指南、API参考等内容。阅读这个文本文件将有助于更深入地理解如何有效地利用这个驱动程序。 此外,MySQL ...

    《HEADFIRSTJAVA》--深入浅出Java说明与归纳.pdf

    Java的类和包通过import语句导入。例如,java.util包包含Date和Calendar类等。 6. Java异常处理:Java使用try、catch、finally等关键字处理运行时错误和其他异常情况。抛出异常使用throw语句,异常可以被catch块...

    java编码主要用于java编码

    以下是对Java编码相关知识点的详细说明: 1. **Java语法基础**:Java是一种面向对象的语言,其语法结构包括类、对象、包、接口、继承、多态等概念。基础语法包括变量声明、数据类型(如整型、浮点型、字符串型等)...

    mysql-connector-java-5.1.48.zip

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)规范的驱动程序,使得Java开发者能够通过编写Java代码来访问和操作MySQL数据库。"mysql-...

    java文本读取方法

    import java.io.RandomAccessFile; import java.io.IOException; public class ReadFromFile { public static void readFileRandomly(String fileName) { RandomAccessFile raf = null; try { raf = new ...

    java多个PDF文件合并为一个PDF文件源码

    以下是一个关于如何在Java中实现这一功能的详细说明。 首先,我们需要一个库来处理PDF文件,Apache PDFBox是一个非常流行的开源Java库,专门用于处理PDF文档。它提供了丰富的API,可以读取、创建、编辑PDF文件,...

Global site tag (gtag.js) - Google Analytics