Clean • Professional
Java provides hundreds of built-in packages, but only a few are used regularly in real-world development.
These common Java packages offer essential classes for everyday programming, including strings, collections, I/O operations, networking, dates, concurrency, and more.
This guide explains the most important Java packages, what they contain, and when to use them — with simple examples.

java.langStringObjectMathSystemThreadWrapper classes (Integer, Double, Boolean, etc.)Example
public class Main {
public static void main(String[] args) {
System.out.println(Math.sqrt(16));
}
}
java.utilMost widely used package for collections, dates, and utilities.
ArrayListHashMapHashSetCollectionsDateRandomScannerExample
import java.util.*;
class Demo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list);
}
}
java.ioUsed for input/output operations, such as reading and writing files.
FileFileInputStreamFileOutputStreamBufferedReaderPrintWriterExample
import java.io.*;
class FileDemo {
public static void main(String[] args) throws Exception {
FileWriter fw = new FileWriter("test.txt");
fw.write("Hello Java");
fw.close();
}
}
java.nio / java.nio.fileModern, faster I/O system used for file handling and buffers.
PathFilesByteBufferExample:
import java.nio.file.*;
class NioExample {
public static void main(String[] args) throws Exception {
Files.writeString(Path.of("data.txt"), "Hello NIO");
}
}
java.netSupports networking, such as HTTP, TCP, UDP communication.
URLURLConnectionSocketServerSocketjava.timeModern date and time API (Java 8+).
LocalDateLocalTimeLocalDateTimeZoneIdDurationPeriodExample:
import java.time.*;
class TimeDemo {
public static void main(String[] args) {
System.out.println(LocalDate.now());
}
}
java.sqlUsed for database connectivity (JDBC).
ConnectionStatementPreparedStatementResultSetDriverManagerjava.mathUsed for high-precision calculations.
BigIntegerBigDecimalExample:
import java.math.*;
class MathDemo {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("10.5");
BigDecimal b = new BigDecimal("2.3");
System.out.println(a.add(b));
}
}
java.awt & javax.swingUsed for GUI programming.
JFrameJButtonJLabeljava.util.concurrentSupport for multithreading, concurrency, thread pools.
ExecutorServiceFutureCallableConcurrentHashMapLocks (ReentrantLock)| Package | Purpose |
|---|---|
| java.lang | Core language classes (String, Math, Object) |
| java.util | Collections, utilities, Scanner |
| java.io | Input/output streams, files |
| java.nio | Fast I/O, Paths, Files |
| java.net | Networking |
| java.time | Date & time API |
| java.sql | Database connectivity |
| java.math | BigInteger, BigDecimal |
| java.awt / javax.swing | GUI programming |
| java.util.concurrent | Threading & concurrency |