Java Reference Library →

null Keyword Usage and Examples

null Keyword Usage and Examples

Learn about the Java null keyword, its purpose, usage, and common pitfalls. Understand how null is used to indicate the absence of a value in reference types, with real-world examples and outputs.

This reference explains null Keyword Usage and Examples through its syntax, examples and boundaries. Use the linked course lessons when the surrounding Java concepts are unfamiliar.

  1. Use this reference

    Identify the documented behavior, read a complete example and check its inputs before applying it.

null Keyword in Java

In Java, null is a special literal that represents the absence of a value for a reference type. It is not a keyword in the strictest sense (like class or public), but a reserved literal used to denote that an object reference does not point to any memory location yet.

Why Do We Use null ?

Java is a statically typed language, which means every variable must have a type. For object references (non-primitive types), the null value is a way to indicate "no object". This is crucial in many scenarios such as:

  • Indicating uninitialized state
  • Returning 'no result' from a method
  • Resetting object references

Example: Assigning null to an Object

class Book {
    String title;
}

public class Main {
    public static void main(String[] args) {
        Book myBook = null; // myBook does not point to any Book object yet
        System.out.println(myBook); // prints: null
    }
}
null

Attempting to Access a null Reference

If you try to access members of a reference that is null, Java will throw a NullPointerException.

public class Main {
    public static void main(String[] args) {
        String text = null;
        System.out.println(text.length()); // Triggers NullPointerException
    }
}
Exception in thread "main" java.lang.NullPointerException
    at Main.main(Main.java:4)

How to Avoid NullPointerException

There are several ways to prevent runtime errors due to null values:

  • Check if the reference is null before accessing it
  • Use default object initialization
  • Employ the Optional API (Java 8+)

Example: Safe Null Check

public class Main {
    public static void main(String[] args) {
        String message = null;

        if (message != null) {
            System.out.println(message.length());
        } else {
            System.out.println("The string is null");
        }
    }
}
The string is null

Returning null from a Method

public class UserService {
    public String findUserById(int id) {
        if (id == 1) return "Alice";
        return null;
    }

    public static void main(String[] args) {
        UserService service = new UserService();
        String user = service.findUserById(2);

        if (user != null) {
            System.out.println("User found: " + user);
        } else {
            System.out.println("User not found");
        }
    }
}
User not found

Assigning null to Arrays and Custom Objects

public class Main {
    public static void main(String[] args) {
        int[] numbers = null;
        String[] names = new String[3];
        names[0] = "John";
        names[1] = null; // Valid usage

        System.out.println(names[1]); // prints: null
    }
}
null

Comparing with null

Always use == or != when comparing a reference to null.

String data = null;

if (data == null) {
    System.out.println("Data is null");
}
Data is null

Using null with Wrapper Classes

Wrapper classes like Integer, Double, and Boolean can hold null, unlike primitive types.

public class Main {
    public static void main(String[] args) {
        Integer count = null;

        if (count == null) {
            System.out.println("No value assigned to count");
        }
    }
}
No value assigned to count

Summary: Key Takeaways

  • null is used with reference types to indicate absence of a value.
  • Accessing members of a null reference throws NullPointerException.
  • Always perform null checks before accessing reference variables.
  • Use default values or the Optional class to write safer code.

Practice Tip

Whenever you get a NullPointerException, check the exact line and trace back the reference variable. Most of the time, it’s a missed initialization.

Using this reference

Check the example’s types, inputs and documented behavior before copying it into an application. Some APIs require external libraries, files or platform services; consult their setup notes.

Related explanations: Java Data Types - Primitive and Non-Primitive, Java Class - Blueprint of Objects, Exceptions in Java Introduction.

Supporting documentation: Official Java learning guide.

Reference checks are optional and do not count toward course progress.

    Reference library →