Java null Keyword
Usage and Examples

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.

Mallikarjuna Mallisetty, author
About the author

Mallikarjuna Mallisetty

General programming

Mallikarjuna shares practical programming tutorials and foundational concepts designed to help developers learn by building and experimenting.

View LinkedIn profile ↗