Can I import same package twice? Will JVM load the package twice at runtime?

JavaObject Oriented ProgrammingProgramming

In Java classes and interfaces related to each other are grouped under a package. Package is nothing but a directory storing classes and interfaces of a particular concept. For example, all the classes and interfaces related to input and output operations are stored in java.io package.

Creating a package

You can group required classes and interfaces under one package just by declaring the package at the top of the Class/Interface (file) using the keyword package as

Example

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......");
   }
}

Unlike other programs to compile a program with a package, you need to use the –d option of the javac command specifying the destination path where you need to create the package.

Output

javac –d . Sample.java

If you haven’t mentioned the destination path the package will be created in the current directory.

Importing a class

To access the classes/interfaces that are grouped under a package, you need to add the location of the package in the classpath variable (or make sure the package is in the current directory) and import the class/interface of it using the import keyword.

Example

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

Output

This is a method of the sample class

Importing a class twice

Yes, you can import a class twice in Java, it doesn’t create any issues but, irrespective of the number of times you import, JVM loads the class only once.

Example

In the following Java program, we are trying to import the Sample class of the com.tutorialspoint.mypackage package only once.

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();
   }
}

Output

Sample class loaded
This is a method of the sample class
raja
Published on 02-Aug-2019 14:59:47
Advertisements