我可以导入同一个包两次吗?JVM会在运行时加载两次这个包吗?


在 Java 中,相互关联的类和接口被分组到一个包中。包只不过是一个存储特定概念的类和接口的目录。例如,所有与输入和输出操作相关的类和接口都存储在 java.io 包中。

创建包

您可以通过在类/接口(文件)顶部使用关键字 package 声明包来将所需的类和接口分组到一个包中,如下所示:

示例

public class Sample{
   public void demo(){
      System.out.println("This is a method of the sample class");
   }
   public static void main(String args[]){
      System.out.println("Hello how are you......");
   }
}

与其他程序不同,要编译带有包的程序,您需要使用 javac 命令的 –d 选项,并指定需要创建包的目标路径。

输出

Hello how are you......

如果您没有指定目标路径,则包将创建在当前目录中。

导入类

要访问分组到包中的类/接口,您需要在 classpath 变量中添加包的位置(或确保包在当前目录中),并使用 import 关键字导入其类/接口。

示例

import com.tutorialspoint.mypackage.Sample;
public class Test{
   public static void main(String args[]){
      Sample obj = new Sample();
      obj.demo();
   }
}

输出

This is a method of the sample class

导入同一个类两次

是的,您可以在 Java 中导入同一个类两次,这不会造成任何问题,但是,无论您导入多少次,JVM 只会加载该类一次。

示例

在以下 Java 程序中,我们尝试仅导入一次 com.tutorialspoint.mypackage 包的 Sample 类。

import com.tutorialspoint.mypackage.Sample;
import com.tutorialspoint.mypackage.Sample;
public class Test{
   public static void main(String args[]){
      Sample obj = new Sample();
      obj.demo();
   }
}

输出

This is a method of the sample class

更新于: 2023-11-23

1K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告