Java import Keyword
Usage and Examples

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 for import 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.