- 1Java Exceptions
- 2Java Keywords
- 3Java abstract Keyword
- 4Java assert Keyword
- 5Java boolean Keyword
- 6Java break Keyword
- 7Java byte Keyword
- 8Java case Keyword
- 9Java catch Keyword
- 10Java char Keyword
- 11Java class Keyword
- 12Java const Keyword
- 13Java continue Keyword
- 14Java default Keyword
- 15Java do Keyword
- 16Java double Keyword
- 17Java else Keyword
- 18Java enum Keyword
- 19Java extends Keyword
- 20Java final Keyword
- 21Java finally Keyword
- 22Java float Keyword
- 23Java for Keyword
- 24Java goto Keyword
- 25Java if Keyword
- 26Java implements Keyword
- 27Java import Keyword
- 28Java instanceof Keyword
- 29Java int Keyword
- 30Java interface Keyword
- 31Java long Keyword
- 32Java native Keyword
- 33Java new Keyword
- 34Java null Keyword
- 35Java package Keyword
- 36Java private Keyword
- 37Java protected Keyword
- 38Java public Keyword
- 39Java return Keyword
- 40Java short Keyword
- 41Java static Keyword
- 42Java strictfp Keyword
- 43Java super Keyword
- 44Java switch Keyword
- 45Java synchronized Keyword
- 46Java this Keyword
- 47Java transient Keyword
- 48Java try Keyword
- 49Java void Keyword
- 50Java volatile Keyword
- 51Java while Keyword
- 52Java String Methods - Syntax and Description
- 53Java String
charAt()
method - 54Java String
codePointAt()
method - 55Java String
codePointBefore()
method - 56Java String
codePointCount()
method - 57Java String
compareTo()
method - 58Java String
compareToIgnoreCase()
method - 59Java String
concat()
method - 60Java String
contains()
method - 61Java String
contentEquals()
method - 62Java String
copyValueOf()
method - 63Java String
endsWith()
method - 64Java String
equals()
method - 65Java String
equalsIgnoreCase()
method - 66Java String
format()
method - 67Java String
getBytes()
method - 68Java String
getChars()
method - 69Java String
hashCode()
method - 70Java String
indexOf()
method - 71Java String
intern()
method - 72Java String
isEmpty()
method - 73Java String
join()
method - 74Java String
lastIndexOf()
method - 75Java String
length()
method - 76Java String
matches()
method - 77Java String
offsetByCodePoints()
method - 78Java String
regionMatches()
method - 79Java String
replace()
method - 80Java String
replaceAll()
method - 81Java String
replaceFirst()
method - 82Java String
split()
method - 83Java String
startsWith()
method - 84Java String
subSequence()
method - 85Java String
substring()
method - 86Java String
toCharArray()
method - 87Java String
toLowerCase()
method - 88Java String
toString()
method - 89Java String
toUpperCase()
method - 90Java String
trim()
method - 91Java String
valueOf()
method - 92Java ArrayList Methods - Complete Reference with Syntax and Description
- 93Java LinkedList Methods - Complete Reference with Syntax and Description
- 94Java HashMap Methods - Syntax and Descriptions
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 throwsNullPointerException
. - 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.