我可以两次导入同一软件包吗?JVM是否会在运行时两次加载软件包?
在Java中,彼此相关的类和接口归为一个包。包不过是一个目录,用于存储特定概念的类和接口。例如,所有与输入和输出操作有关的类和接口都存储在java.io包中。
创建一个包
您只需将关键字package声明为Class/Interface(文件)的顶部,即可将所需的类和接口归为一个包,-
示例
package com.nhooo.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.nhooo.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.nhooo.mypackage程序包的Sample类。
import com.nhooo.mypackage.Sample; import com.nhooo.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