Almost all the programming languages are bonded with null. There is hardly a programmer, who is not troubled by null. In Java, null is associated java.lang.NullPointerException. As it is a class in java.lang package, it is called when we try to perform some operations with or without null, and sometimes we don’t even know where it has happened. Below are some important points about null in java that every Java programmer should know:
1. null is Case sensitive: null is literal in Java and because keywords are case-sensitive in java, we can’t write NULL or 0 as in C language.
Tóm Tắt
Java
public
class
Test
{
public
static
void
main (String[] args)
throws
java.lang.Exception
{
Object obj = NULL;
Object obj1 =
null
;
}
}
Output:
5: error: cannot find symbol can't find symbol 'NULL' ^ variable NULL class Test 1 error
2. Reference Variable value: Any reference variable in Java has a default value null.
Java
public
class
Test
{
private
static
Object obj;
public
static
void
main(String args[])
{
System.out.println("Value of object obj is : " + obj);
}
}
Output:
Value of object obj is : null
3. Type of null: Unlike the common misconception, null is not Object or neither a type. It’s just a special value, which can be assigned to any reference type and you can type cast null to any type Examples:
// null can be assigned to String String str = null; // you can assign null to Integer also Integer itr = null; // null can also be assigned to Double Double dbl = null; // null can be type cast to String String myStr = (String) null; // it can also be type casted to Integer Integer myItr = (Integer) null; // yes it's possible, no error Double myDbl = (Double) null;
4. Autoboxing and unboxing : During auto-boxing and unboxing operations, compiler simply throws Nullpointer exception error if a null value is assigned to primitive boxed data type.
Java
public
class
Test {
public
static
void
main(String[] args)
throws
java.lang.Exception
{
Integer i =
null
;
int
a = i;
}
}
Output:
Exception in thread "main" java.lang.NullPointerException at Test.main(Test.java:6)
5. instanceof operator: The java instanceof operator is used to test whether the object is an instance of the specified type (class or subclass or interface). At run time, the result of the instanceof operator is true if the value of the Expression is not null. This is an important property of instanceof operation which makes it useful for type casting checks.
Java
public
class
Test {
public
static
void
main(String[] args)
throws
java.lang.Exception
{
Integer i =
null
;
Integer j =
10
;
System.out.println(i
instanceof
Integer);
System.out.println(j
instanceof
Integer);
}
}
Output:
false true
6. Static vs Non static Methods: We cannot call a non-static method on a reference variable with null value, it will throw NullPointerException, but we can call static method with reference variables with null values. Since static methods are bonded using static binding, they won’t throw Null pointer Exception.
Java
public
class
Test {
public
static
void
main(String args[])
{
Test obj =
null
;
obj.staticMethod();
obj.nonStaticMethod();
}
private
static
void
staticMethod()
{
System.out.println(
"
static
method,
can be called by
null
reference & quot;);
}
private
void
nonStaticMethod()
{
System.out.print("
Non -
static
method - ");
System.out.println(
"
cannot be called by
null
reference & quot;);
}
}
Output:
static method, can be called by null referenceException in thread "main" java.lang.NullPointerException at Test.main(Test.java:5)
7. == and != The comparison and not equal to operators are allowed with null in Java. This can made useful in checking of null with objects in java.
Java
public
class
Test {
public
static
void
main(String args[])
{
System.out.println(
null
==
null
);
System.out.println(
null
!=
null
);
}
}
Output:
true false
8. “null” can be passed as an argument in the method :
We can pass the null as an argument in java and we can print the same. The data type of argument should be Reference Type. But the return type of method could be any type as void, int, double or any other reference type depending upon the logic of program.
Here, the method “print_null” will simply print the argument which is passed from the main method.
Java
import
java.io.*;
class
GFG {
public
static
void
print_null(String str)
{
System.out.println(
"Hey, I am : "
+ str);
}
public
static
void
main(String[] args)
{
GFG.print_null(
null
);
}
}
Output :
Hey, I am : null
9. ‘+’ operator on null :
We can concatenate the null value with String variables in java. It is considered a concatenation in java.
Here, the null will only be concatenated with the String variable. If we use “+” operator with null and any other type(Integer, Double, etc.,) other than String, it will throw an error message.
Integer a=null+7 will throw an error message as “bad operand types for binary operator ‘+’ “
Java
import
java.io.*;
class
GFG {
public
static
void
main(String[] args)
{
String str1 =
null
;
String str2 =
"_value"
;
String output = str1 + str2;
System.out.println(
"Concatenated value : "
+ output);
}
}
Output
Concatenated value : null_value
This article is contributed by Gaurav Miglani. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to [email protected]. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or if you want to share more information about the topic discussed above.
My Personal Notes
arrow_drop_up