Home Java Java Packages

Java Packages

Beginner ⏱ 8 min read Updated: Jul 2026

Java packages are used to organize classes, interfaces, enums, and other Java files into logical groups. Packages make projects easier to manage, improve code readability, prevent naming conflicts, and provide access protection. They are one of the most important features of Java, especially when developing large applications.

In this tutorial, you will learn what Java packages are, why they are used, different types of packages, how to create your own package, and how to import packages with practical examples.

What is a Package in Java?

A package in Java is a namespace that groups related classes and interfaces together. Instead of storing all classes in a single folder, packages help organize them into meaningful directories.

For example, Java provides packages like java.util, java.io, and java.lang, each containing classes designed for specific purposes.

📦
Key Point: Every Java class belongs to a package. If you do not specify one, Java automatically places the class in the default package.

Why Use Java Packages?

Packages are essential for writing clean and maintainable Java programs. They allow developers to organize code efficiently while making applications easier to understand and expand.

Organization

Keeps related classes together for better project structure.

No Name Conflict

Allows classes with the same name to exist in different packages.

Security

Packages provide access control through package-level visibility.

Easy Maintenance

Large applications become easier to update and manage.

Types of Java Packages

Java provides two main types of packages.

1. Predefined Packages

These packages are included with the Java Development Kit (JDK). They contain ready-to-use classes for common programming tasks.

  • java.lang – Basic language classes.
  • java.util – Collections, Scanner, Date, Random, etc.
  • java.io – File handling and streams.
  • java.net – Networking classes.
  • java.sql – Database connectivity.

2. User-Defined Packages

Developers can create their own packages to organize application classes. User-defined packages are commonly used in real-world Java projects.

Creating a User-Defined Package

Use the package keyword at the beginning of a Java file to create a package.

Example
package mypackage;
public class Hello {
    public void display() {
        System.out.println("Welcome to Java Package");
    }
 }

The above class belongs to the mypackage package. The source file should be stored inside a folder named mypackage.

Importing a Package

The import keyword allows you to use classes from another package without writing the complete package name every time.

Example
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your name:");
        String name = sc.nextLine();
        System.out.println("Hello " + name);
    }
}

Ways to Import Packages

  • Import a single class: import java.util.Scanner;
  • Import all classes: import java.util.*;
  • Use fully qualified class name: java.util.Scanner

Advantages of Java Packages

Better Structure

Packages organize files into meaningful folders.

Reusability

Classes inside packages can easily be reused across projects.

Scalability

Large Java applications become easier to develop and maintain.

Access Control

Packages help manage class visibility and access permissions.

Cleaner Code

Related classes remain grouped together, making code easier to understand.

Important Points About Java Packages

  • The package statement must be the first line in a Java file.
  • A Java file can belong to only one package.
  • The folder structure should match the package name.
  • The java.lang package is imported automatically.
  • You can import individual classes or an entire package.
  • Packages improve code organization and reduce naming conflicts.

Summary

Java packages are an essential feature for organizing and managing Java applications. They group related classes together, improve project structure, avoid class name conflicts, and support better access control. Java offers many predefined packages, while developers can also create custom packages to organize their own code. Learning packages is important because almost every professional Java application uses them to keep the project clean, reusable, and easy to maintain.