import
Keyword in Java
The import
keyword in Java is used to bring other classes or entire packages into your current Java file. It allows your code to access and use pre-defined classes like Scanner
, ArrayList
, or even custom classes from other packages.
Why Do We Need import
?
Java's class structure is modular. Classes are organized into packages. Without the import
keyword, you would have to use fully qualified names every time you refer to a class outside the java.lang
package.
// Without import
public class Test {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.println("Enter a number:");
int number = input.nextInt();
System.out.println("You entered: " + number);
}
}
Enter a number:
5
You entered: 5
That’s a lot of typing! Let’s simplify with import
.
Basic Usage of import
Import a Single Class
To import a specific class from a package:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter your name:");
String name = input.nextLine();
System.out.println("Hello, " + name + "!");
}
}
Enter your name:
Alice
Hello, Alice!
Import an Entire Package
If you want to import all classes in a package, use the asterisk (*) wildcard.
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
System.out.println("Languages: " + list);
}
}
Languages: [Java, Python, C++]
Types of Imports in Java
1. Regular Import
Used to import specific classes:
import java.util.Date;
2. Wildcard Import
Used to import all classes in a package:
import java.util.*;
3. Static Import
Allows direct access to static members (fields and methods) of a class.
import static java.lang.Math.*;
public class MathExample {
public static void main(String[] args) {
System.out.println("Square root of 16: " + sqrt(16));
System.out.println("Power of 2^5: " + pow(2, 5));
}
}
Square root of 16: 4.0
Power of 2^5: 32.0
Things to Remember
java.lang
is automatically imported – no need forimport java.lang.*;
- Using
*
doesn’t slow down your program – it just imports class names, not the actual classes unless used - If two classes have the same name in different packages, you must use the fully qualified name
Example: Conflicting Class Names
import java.util.Date;
import java.sql.Date;
public class DateConflict {
public static void main(String[] args) {
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
System.out.println("Util Date: " + utilDate);
System.out.println("SQL Date: " + sqlDate);
}
}
Util Date: Fri May 16 12:00:00 IST 2025
SQL Date: 2025-05-16
When You Don’t Need import
If the class you're using is in the same package as your class, you don’t need to import it. Java can find it automatically.