Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Java Basics

 
asheesh talwar
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am confused why I am getting the following output when
I run this program ,can any one please give me explanation for this o/p.
class C{
static String a;
static String b;
public static void main(String[] args)
{
if(a == null)
{
System.out.println("Its a");
}
if(b.equals(null))
{
System.out.println("Its b");
}
}
}
The above program gives following output
Its a
Exception in thread "main" java.lang.NullPointerException
at C.main(C.java:10)
Regards
Asheesh
 
Angela Poynton
Ranch Hand
Posts: 3143
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You are geting the exception because when you call the equals method it is expecting an object as an argument "null" is not an object.
First when you used if (a == null) you were testing the value of a.
when you used if(b.equals(null)) you were asking if b is pointing to the same object as null ... which is not possible.
This is an example of how the different comparators work on String objects. Remember if you create a String using:
String x = "hello";
Then create another String like this
String y = "hello";
x & y will point to the same String object!


[This message has been edited by Angela Poynton (edited December 13, 2000).]
 
asheesh talwar
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanx Angela
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic