Built-in Packages
Built-in packages are collections of predefined classes and interfaces provided by Java to handle common programming tasks such as language fundamentals, collections, I/O, networking, date/time, concurrency, and databases. They form the Java Standard Library and are available out of the box. This is a frequent interview topic, often asked alongside import, packages, and API usage.
Why Built-in Packages Exist
- Avoid reinventing common functionality
- Provide reliable, optimized implementations
- Promote standardization across Java programs
- Speed up development and reduce bugs
Most Important Built-in Packages (Must-Know)
1. java.lang — Core Language Support
Automatically imported (no import needed)
Common classes:
- Object
- String, StringBuilder, StringBuffer
- Math
- System
- Exception, RuntimeException
- Wrapper classes (Integer, Double, etc.)
String s = "Java";
System.out.println(Math.sqrt(16));
2. java.util — Utilities & Collections
Used for data structures and utilities
Common classes/interfaces:
- List, ArrayList, LinkedList
- Set, HashSet
- Map, HashMap
- Iterator
- Collections, Arrays
- Scanner
import java.util.*;
List<Integer> list = new ArrayList<>();
3. java.io — Input / Output (File-based, Stream-based)
Used for file handling and byte/character streams
Common classes:
- File
- FileReader, FileWriter
- InputStream, OutputStream
- BufferedReader, BufferedWriter
import java.io.*;
File file = new File("data.txt");
4. java.nio — New I/O (Non-blocking, Faster I/O)
Introduced for high-performance I/O
Key features:
- Buffers
- Channels
- Paths & Files API
import java.nio.file.*;
Path p = Paths.get("data.txt");
5. java.sql — Database Connectivity (JDBC)
Used for database operations
Common interfaces/classes:
- Connection
- Statement, PreparedStatement
- ResultSet
- DriverManager
import java.sql.*;
Connection con = DriverManager.getConnection(url, user, pwd);
6. java.time — Date & Time API (Java 8+)
Modern replacement for Date and Calendar
Common classes:
- LocalDate
- LocalTime
- LocalDateTime
- Period, Duration
import java.time.*;
LocalDate today = LocalDate.now();
7. java.net — Networking
Used for network programming
Common classes:
- URL
- URLConnection
- Socket
- ServerSocket
import java.net.*;
URL url = new URL("https://example.com");
8. java.util.concurrent — Multithreading Utilities
Used for high-level concurrency
Common classes:
- ExecutorService
- Executors
- Future
- Callable
- ConcurrentHashMap
import java.util.concurrent.*;
ExecutorService ex = Executors.newFixedThreadPool(2);
9. java.math — High-Precision Arithmetic
Used for financial and scientific calculations
Classes:
- BigInteger
- BigDecimal
import java.math.*;
BigDecimal bd = new BigDecimal("123.45");
Package Import Rules (Quick Recap)
- java.lang → auto-imported
- Other packages → must be imported explicitly
- Wildcard imports do not import sub-packages
import java.util.*; // only util, not util.concurrent
Built-in Packages Summary Table (Interview-Friendly)
| Package | Purpose |
|---|---|
| java.lang | Core language support |
| java.util | Collections & utilities |
| java.io | File & stream I/O |
| java.nio | Non-blocking I/O |
| java.sql | Database connectivity |
| java.time | Date & time |
| java.net | Networking |
| java.util.concurrent | Multithreading |
| java.math | High-precision math |
Common Beginner Mistakes
- Forgetting imports (except java.lang)
- Using old Date instead of java.time
- Overusing wildcard imports
- Confusing java.io with java.nio
- Not closing I/O or DB resources
Interview-Ready Answers
Short Answer
Built-in packages are predefined Java packages that provide commonly used classes and interfaces.
Detailed Answer
Java provides built-in packages such as java.lang, java.util, java.io, java.sql, and java.time to handle core language features, collections, I/O, databases, and date/time operations. These packages help developers write efficient, standardized, and maintainable code.
Built-in Package Examples (Quick Practice)
1. java.lang – String (Auto-Imported)
class Demo {
public static void main(String[] args) {
String s = "Java";
System.out.println(s.toUpperCase());
}
}
Output
JAVA
2. java.lang – Math Class
class Demo {
public static void main(String[] args) {
System.out.println(Math.max(10, 20));
System.out.println(Math.sqrt(16));
}
}
Output
20
4.0
3. java.lang – Wrapper Classes
class Demo {
public static void main(String[] args) {
Integer x = Integer.parseInt("100");
System.out.println(x + 50);
}
}
Output
150
4. java.util – ArrayList
import java.util.ArrayList;
class Demo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Selenium");
System.out.println(list);
}
}
Output
[Java, Selenium]
5. java.util – HashSet
import java.util.HashSet;
class Demo {
public static void main(String[] args) {
HashSet<Integer> set = new HashSet<>();
set.add(10);
set.add(10);
System.out.println(set);
}
}
Output
[10]
6. java.util – HashMap
import java.util.HashMap;
class Demo {
public static void main(String[] args) {
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "Java");
map.put(2, "API");
System.out.println(map.get(1));
}
}
Output
Java
7. java.util – Iterator
import java.util.ArrayList;
import java.util.Iterator;
class Demo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
Output
A
B
8. java.util – Collections Utility Class
import java.util.*;
class Demo {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(3, 1, 2);
Collections.sort(list);
System.out.println(list);
}
}
Output
[1, 2, 3]
9. java.util – Date
import java.util.Date;
class Demo {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);
}
}
Output
(Current date & time)
10. java.util – Scanner (User Input)
import java.util.Scanner;
class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
System.out.println(x * 2);
}
}
Explanation
Reads input from console
11. java.io – File Class
import java.io.File;
class Demo {
public static void main(String[] args) {
File f = new File("test.txt");
System.out.println(f.exists());
}
}
Output
false // if file not present
12. java.io – FileInputStream (Checked Exception)
import java.io.FileInputStream;
class Demo {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("test.txt");
} catch (Exception e) {
System.out.println("File not found");
}
}
}
Output
File not found
13. java.nio.file – Files API (Modern IO)
import java.nio.file.Files;
import java.nio.file.Paths;
class Demo {
public static void main(String[] args) throws Exception {
boolean exists = Files.exists(Paths.get("test.txt"));
System.out.println(exists);
}
}
14. java.time – LocalDate
import java.time.LocalDate;
class Demo {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println(today);
}
}
Output
YYYY-MM-DD
15. java.time – LocalDateTime
import java.time.LocalDateTime;
class Demo {
public static void main(String[] args) {
System.out.println(LocalDateTime.now());
}
}
16. java.sql – SQLException (Exception Example)
import java.sql.SQLException;
class Demo {
static void connect() throws SQLException {
throw new SQLException("DB error");
}
public static void main(String[] args) {
try {
connect();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
Output
DB error
17. java.net – URL Class
import java.net.URL;
class Demo {
public static void main(String[] args) throws Exception {
URL url = new URL("https://example.com");
System.out.println(url.getHost());
}
}
Output
example.com
18. java.util.concurrent – Thread Pool
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
class Demo {
public static void main(String[] args) {
ExecutorService ex = Executors.newSingleThreadExecutor();
ex.execute(() -> System.out.println("Task running"));
ex.shutdown();
}
}
Output
Task running
19. java.lang.System – System Properties
class Demo {
public static void main(String[] args) {
System.out.println(System.getProperty("os.name"));
}
}
20. Interview Summary – Built-in Packages
import java.util.*;
import java.time.*;
class Demo {
public static void main(String[] args) {
System.out.println(LocalDate.now());
System.out.println(new ArrayList<>());
}
}
Key Points
- java.lang → auto-imported
- java.util → collections & utilities
- java.io / java.nio → file handling
- java.time → modern date/time
- java.sql → database support
Key Takeaway
Built-in packages are the backbone of Java development. Mastering them allows you to write powerful applications faster, cleaner, and more reliably.