Java Programming - Language Fundamentals - Discussion
Discussion Forum : Language Fundamentals - Finding the output (Q.No. 1)
1.
What will be the output of the program?
public class CommandArgsThree
{
public static void main(String [] args)
{
String [][] argCopy = new String[2][2];
int x;
argCopy[0] = args;
x = argCopy[0].length;
for (int y = 0; y < x; y++)
{
System.out.print(" " + argCopy[0][y]);
}
}
}
and the command-line invocation is
> java CommandArgsThree 1 2 3
Answer: Option
Explanation:
In argCopy[0] = args;, the reference variable argCopy[0], which was referring to an array with two elements, is reassigned to an array (args) with three elements.
Discussion:
36 comments Page 2 of 4.
Poornima said:
1 decade ago
argCopy[0] = args;
x = argCopy[0].length;(x=3)
for (int y = 0; y < x; y++) i.e. (int y=0;y<3;y++)
argCopy[0][y] i.e. argCopy[0][0],argCopy[0][1],argCopy[0][2]
Invocation command is 1 2 3
argCopy[0][0] = 1
argCopy[0][1] = 2
argCopy[0][2] = 3
So output is 1 2 3.
x = argCopy[0].length;(x=3)
for (int y = 0; y < x; y++) i.e. (int y=0;y<3;y++)
argCopy[0][y] i.e. argCopy[0][0],argCopy[0][1],argCopy[0][2]
Invocation command is 1 2 3
argCopy[0][0] = 1
argCopy[0][1] = 2
argCopy[0][2] = 3
So output is 1 2 3.
Lachya S said:
1 decade ago
For me code compile successfully but when I was giving 1 2 3 as an command argument it is throwing error like 1 is not recognised as an internal or externalcommand. what should i do? Please give me solution for that issue.
Shiwam pandey said:
1 decade ago
Yes Rochu is correct and if we replace System.out.print (" " + argCopy[0][y]) ; with System.out.print (" " + argCopy[1][1]) ;.
Then it will print three times null.
Since default value of string is null.
Then it will print three times null.
Since default value of string is null.
Arun kumar said:
1 decade ago
Here argCopy[0](reference of one dimensional array) is referring args. This means, argCopy[0] is pointing the memory location of args. Thats why it prints the values which are stored in args.
Rochu said:
1 decade ago
Tajinderpal Singh is wrong because argcopy is an 2D array . it only have argcopy[0][0],argcopy[0][1],argcopy[1][0],argcopy[1][1].
it does not have memory location like argcopy[0][2]=3.
it does not have memory location like argcopy[0][2]=3.
Yair said:
1 decade ago
args is an array with 3 elements - while initially argCopy[0] is a 2 element array - By inserting args into it:
argCopy[0] = args;
It is re-assigned to a three element array.
argCopy[0] = args;
It is re-assigned to a three element array.
Priyanka said:
8 years ago
String [][] argCopy = new String[2][2];
argCopy is declared with 2-dimensional array. Their size is 2. How can be assigned the value to a[0][2]?
argCopy is declared with 2-dimensional array. Their size is 2. How can be assigned the value to a[0][2]?
Alexander said:
1 decade ago
String [][] argCopy = new String[2][2];
argCopy is declared with 2 dimensional array. Their size is 2. How can be assign the value to a[0][2] ?
argCopy is declared with 2 dimensional array. Their size is 2. How can be assign the value to a[0][2] ?
Santosh kumar said:
1 decade ago
Argcopy declared with in two dimensional array but args initialised to argcopy[0]. Is it correct. Please explain.
Prateek Nanhorya said:
1 decade ago
This is very wrong question it's answer can't be like that its answer will be nothing because values of x is 0;.
(1)
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers