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 Please explain. Boolean[] b1 = new Boolean[10]; 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 "Please explain. Boolean[] b1 = new Boolean[10];" Watch "Please explain. Boolean[] b1 = new Boolean[10];" New topic
Author

Please explain. Boolean[] b1 = new Boolean[10];

Mr Iftikhar
Ranch Hand

Joined: Oct 12, 2001
Posts: 39
What will happen if run the following code?
1: Boolean[] b1 = new Boolean[10];
2:
3: boolean[] b2 = new boolean[10];
4:
5: System.out.println("The value of b1[1] = " +b1[1]);
6: System.out.println("The value of b2[1] = " +b2[1]);
A) Prints The value of b1[1] = false
The value of b2[1] = false
B) Prints The value of b1[1] = null
The value of b2[1] = null
C) Prints The value of b1[1] = null
The value of b2[1] = false
D) Prints The value of b1[1] = false
The value of b2[1] = null
The answer is C .
please explain why answer is C . I think this is wrong.

java language
Valentin Crettaz
Gold Digger
Sheriff

Joined: Aug 26, 2001
Posts: 7610
No it is right.
you have two arrays, one able to hold references to Boolean objects and one holding boolean primitive values.
If you don't initialize each element of the array they are initialized by default. In Object arrays, each element is initialized to null and in primitive arrays, each element is initialized to some value, in the case of boolean array that value is false.
So when you query the value of the second element of each array that you haven't initialized explicitely, they give you their default value which are null for b1[1] and false for b2[1].
HIH
------------------
Valentin Crettaz
Sun Certified Programmer for Java 2 Platform


SCJP 5, SCJD, SCBCD, SCWCD, SCDJWS, IBM XML
[Blog] [Blogroll] [My Reviews] My Linked In
Mr Iftikhar
Ranch Hand

Joined: Oct 12, 2001
Posts: 39
Thanks Valentin Crettaz
I know the thing that the default value of object is null
and default value of boolean variable is false.
But how you are differenting the the line 1 is Boolean
object array and line 3 creating the Boolean primitive
array values.

1: Boolean[] b1 = new Boolean[10];
2:
3: boolean[] b2 = new boolean[10];
please explain me.
Valentin Crettaz
Gold Digger
Sheriff

Joined: Aug 26, 2001
Posts: 7610
on the first line Boolean is written with an initial uppercase which corresponds to the class Boolean in package java.lang
On the second line boolean is written with an initial lowercase which corresponds to the boolean primitive type.
HIH
------------------
Valentin Crettaz
Sun Certified Programmer for Java 2 Platform
Mr Iftikhar
Ranch Hand

Joined: Oct 12, 2001
Posts: 39
Thanks Valentin Crettaz
This was a silly but i have not proper concentration.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Please explain. Boolean[] b1 = new Boolean[10];
 
Similar Threads
Logical operators precedence
Boolean
Object Ref
wrapper class doubt
Please explain. Boolean[] b1 = new Boolean[10];