Java文件中import语句的含义

Ped*_*tic 19 java

任何人都可以清楚地向我解释当我们在Java文件中使用import语句时到底发生了什么?如果我们添加越来越多的java类,它会增加文件的大小吗?为什么我们不使用类加载器呢?导入的限制是什么?

pol*_*nts 45

import 声明(非语句)本质上是源代码级别的短手使能器:它允许您static使用单个标识符(例如List,min)而不是完全限定名称(例如java.util.List,Math.min)来引用类型或成员.

import声明部分是源代码的编译时元素,并且在运行时不存在.在JVM字节码中,类型名称始终是完全限定的,除非您使用编写得不好的编译器,否则二进制文件应仅包含实际使用的类型的名称.

类加载器用于完全不同的概念,并且与import功能完全无关.

JLS 7.5导入声明

一个进口报关允许static部件或命名类型通过由单个标识符的简单名称来引用.如果不使用适当的import声明,引用在另一个包中声明的类型或static另一个类型的成员的唯一方法是使用完全限定的名称.

单一类型导入声明通过提及其规范名称来导入单个命名类型.

type-import-on-demand声明根据需要导入命名类型或包的所有可访问类型.从未命名的包导入类型是编译时错误.

单个静态导入声明通过给出其规范名称,从类型中导入具有给定名称的所有可访问静态成员.

静态导入按需声明根据需要导入命名类型的所有可访问静态成员.

参考

也可以看看


各种import相关问题

关于语法的作用import:

按需与单一类型:

import static:

与绩效相关的问题:


Zak*_*aki 5

包由类组成,包中的类由方法、变量等组成。类的全名由包名和类名组成。如果您需要在代码中使用类,则需要为编译器提供类的全名。因此,您可以使用导入语句,或者您可以在代码中使用该类的每个地方键入完全限定名称。

例如,如果您AraryList的代码中需要 ,则使用 import 语句import java.util.ArrayList;而不是在需要 Arraylist 的每个地方键入完全限定的类名。

有关更多详细信息,请参阅JLS


Sna*_*ake 3

import语句对编译器说:如果在此类中找不到某个函数,请查看导入列表。

这样您就可以引用其他包中的函数,而无需将定义(如 C(++) .h 文件)复制到您自己的包中。


归档时间:

查看次数:

69385 次

最近记录:

9 年,4 月 前