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

javaobject oriented programmingprogramming更新于 2024/5/2 16:57:00

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

创建包

只需在类/接口(文件)顶部使用关键字 package as − 声明包,即可将所需的类和接口分组到一个包下。

示例

package com.tutorialspoint.mypackage;
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 选项指定需要创建包的目标路径。

输出

javac –d . Sample.java

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

导入类

要访问包下分组的类/接口,您需要在 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();
   }
}

输出

Sample class loaded
This is a method of the sample class

相关文章