aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Array Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Array" Watch "Array" New topic
Author

Array

srinivas sridaragaddi
Ranch Hand

Joined: Jul 24, 2007
Posts: 225




options:
prints null
prints nullnull
compile-time error
Run-time exception

answer:run-time exception

ArrayIndexOutOfBoundsException at line:1

Explain


SCJP 5.0<br /> <br />"Skills are started with learning and mastered with improvement. Nothing is hereditary except death" BUDDHA...
suresh mulagala
Ranch Hand

Joined: Feb 18, 2003
Posts: 41
Because a3 is being converted to a max of A[3][2][1] when you are doing



so the utmost you can do is a3[2][1][0]
swati cha
Ranch Hand

Joined: Jul 04, 2006
Posts: 40
if i compile the above program i am gettein error like..

A cannot be resolved to a type
could you explain this.
Srikanth Iyer
Ranch Hand

Joined: Apr 30, 2007
Posts: 52
in the above mentioned code your are tryiing to create and array of Type class A and thus you should declare a class named and thenn complie.

just add class a{} in your code and it will complie fine.
Burkhard Hassel
Ranch Hand

Joined: Aug 25, 2006
Posts: 1274
In the first part:
A[] a1=new A[1];
A[][] a2=new A[2][1];
A[][][] a3=new A[3][3][3];
System.out.println(a3[2][2][2]);

The arrays are created, and the default values (null) are put into their places.
Therefore the output is null.

Second part:

a1[0]=new A();
a2[0]=a2[1]=a1;
a3[0]=a3[1]=a3[2]=a2;
System.out.println(a3[2][2][2]);//1




a1 looks like this:
a1: { the new A() }

an array with only one element, length of the array is one.


When you say
a2[0]=a2[1]=a1;

a2 looks like:
a2: { a1, a1 }
Now, a2 no longer has the length of three because it has been reassigned.


and finally
a3[0]=a3[1]=a3[2]=a2;

a3 looks like:
a3: { a2, a2, a2 }



But when you want to have:
System.out.println(a3[2][2][2]);//1

Starting from left to right:
a3[2] points to a2 (all three elements of a3 are a2).

Therefore
a3[2] [2] is the same as
a2[2]
but a2 has only a2[0] and a2[1] (see bold line above), therefore the exception.


Perhaps draw the arrays on a sheet of paper.


Yours,
Bu.


all events occur in real time
suresh mulagala
Ranch Hand

Joined: Feb 18, 2003
Posts: 41
Swathi try this...

dhwani mathur
Ranch Hand

Joined: May 08, 2007
Posts: 621
This was a superbb explanation

by Mr Burkhard Hassel !!
srinivas sridaragaddi
Ranch Hand

Joined: Jul 24, 2007
Posts: 225
Thanks Burkhard for explaining so briefly....

Thank you for helping me understand many topics as you have replied to most of my posts...
 
Don't get me started about those stupid light bulbs.
 
subject: Array