Null vs Void: What’s the Difference?

sikiru
2 min readJan 8, 2024

In programming languages like Java and C#, null and void are two important but distinct concepts. Understanding the difference between them is important for writing clean, bug-free code.

What is Null?

Null represents the absence of a value. It is an empty value that indicates that a variable does not point to any object or address in memory.

Some key things to know about null:

  • Null is a built-in value that is supported in many programming languages like Java, C#, JavaScript, etc.
  • When a variable is declared but not initialized, its default value is null. For example:
String str; //str is null by default
  • Any object reference can be set to null. This removes the association between the variable and the object. For example:
String str = "Hello";
str = null; //str no longer points to "Hello" string
  • Calling methods or accessing members of a null object results in a NullPointerException. This is one of the most common errors in Java.
  • null is different from 0, false, or empty string. Those are valid values, null specifically means absence of value.

What is Void?

Void represents the absence of a value in a slightly different way than null. It is used in three main contexts:

  1. As a return type for methods that don’t return anything
  2. As a type for casting when we don’t care about the specific type
  3. As a generic type argument when we don’t need a specific type

Some key things to know about void:

  • void is not an actual value — it just represents the absence of a value.
  • In Java, methods that don’t return anything should have a void return type. For example:
void printMessage() {
System.out.println("Hello World");
}
  • Void can be used as a generic type argument when we don’t need a specific type. For example:
List<Void> emptyList;
  • We can cast to void if we want to ignore a value. For example:
void ignoreValue(int x) {
(void)x; //casting to void ignores x
}

Key Differences between Null and Void

  • Null is a value, void is not.
  • Null represents an empty object reference, void represents absence of value.
  • Variables can be null but not void.
  • Methods can return void but not null.

In summary, null and void both relate to the absence of something — null is an empty object reference, while void represents the absence of a value. Understanding these nuances is important for writing robust Java/C# code.

--

--

sikiru

As a web developer, I've fallen in love with explaining tech through writing on Medium, which lets me deepen my knowledge and help others learn.❤️❤️