Java Programming - Operators and Assignments - Discussion
Discussion Forum : Operators and Assignments - Finding the output (Q.No. 1)
1.
What will be the output of the program?
class PassA
{
public static void main(String [] args)
{
PassA p = new PassA();
p.start();
}
void start()
{
long [] a1 = {3,4,5};
long [] a2 = fix(a1);
System.out.print(a1[0] + a1[1] + a1[2] + " ");
System.out.println(a2[0] + a2[1] + a2[2]);
}
long [] fix(long [] a3)
{
a3[1] = 7;
return a3;
}
}
Answer: Option
Explanation:
Output: 15 15
The reference variables a1 and a3 refer to the same long array object. When the [1] element is updated in the fix() method, it is updating the array referred to by a1. The reference variable a2 refers to the same array object.
So Output: 3+7+5+" "3+7+5
Output: 15 15 Because Numeric values will be added
Discussion:
43 comments Page 5 of 5.
Salik Khan said:
5 years ago
It's because in java array is passed by reference, so any changes in the method reflect in the actual array.
Sowmya said:
5 years ago
long[] a1={3,4,5};
long[] a2=a1;
This is equal to,
a1[0]=a2[0] and a1[1]=a2[1] and a1[2]=a2[2].
And in fix method, a3 is method local variable it is not an array.
So changes made to a1 is also reflected in a2 so the answer is 15 15.
long[] a2=a1;
This is equal to,
a1[0]=a2[0] and a1[1]=a2[1] and a1[2]=a2[2].
And in fix method, a3 is method local variable it is not an array.
So changes made to a1 is also reflected in a2 so the answer is 15 15.
(3)
Aryan Sahebrao Salunkhe said:
2 years ago
Good, thanks all for explaining.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers