This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes another Mock Exam Question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "another Mock Exam Question" Watch "another Mock Exam Question" New topic
Author

another Mock Exam Question

Gaurav Chikara
Ranch Hand

Joined: Jun 09, 2000
Posts: 410
Hi all
This is a question from Mock Exam
1 String s = null;
2 if ( s != null & s.length() > 0)
3 System.out.println("s != null & s.length() > 0");
4 if ( s != null && s.length() > 0)
5 System.out.println("s != null & s.length() > 0");
6 if ( s != null | | s.length() > 0)
7 System.out.println("s != null & s.length() > 0");
8 if ( s != null | s.length() > 0)
9 System.out.println("s != null | s.length() > 0");
Which of the following lines throwing null pointer exception

A. 2,4
B. 6,8
C. 2,4,6,8
D. 2,6,8
Correct answer is D
But I could not get logic behind it clearly
Can anyone be of any help in this regard ?


SCJP,SCWCD,SCBCD<br />If Opportunity doesn't knock then build the door
Nitin Dabadghav
Greenhorn

Joined: Jun 28, 2000
Posts: 13
A logical OR operator '|' and a logical AND '&' operator evaluates both the expressions and therefore java compiler throws a nullpointerException while evaluating the 's.length()' statement as s is set to null. But in a short Circuited(&&) operator if the 1st condition is true it evaluates the next condition and gives the exception but in a short circuited (| |) operator if the first condition is true the it dosnt evaluate the next condition hence the exception is not thrown.
pardha
Greenhorn

Joined: Jun 18, 2000
Posts: 11
Refer Short Circuit operators (| | ,&&),in these operators ,decision to execute the second expression is based on the result of the first one.
Normal operators (&,|)will evaluate both the expressions.
At line 2, s.length() is evaluated and results in exception.
At line 4,s.length() is not evaluated because the first one is false.
At line 6,s.length() is evaluated as the first expression is false.
At line 8,s.length() is evaluated.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: another Mock Exam Question
 
Similar Threads
Confusion
Mock Exam Question.Please anybody help me.
NullPointerException
When does a NullPointerException occurs?
am i correct ?