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 1 of 5.
Nagarjuna said:
2 decades ago
Can any one tell me why a1[] will also change.
Ram said:
1 decade ago
The method fix()is fixed the is a3[1]=7, so that value is assing by the position of a[1]=7.
Vasu said:
1 decade ago
While program is executing
ofter second step
the method of fix(_)
then it comes again back to 3 step.
so it changes the array elements in the position of 1
i.e (a1[1])
ofter second step
the method of fix(_)
then it comes again back to 3 step.
so it changes the array elements in the position of 1
i.e (a1[1])
Vagmita said:
1 decade ago
I cant understand fix... method...
Sainath said:
1 decade ago
Can anyone explain me in clear way?
Gopi said:
1 decade ago
@Naga. It's because of reflection in referenced object.
Vijay said:
1 decade ago
3 elements should be printed know why only 2 elements are being printed
When I give like this
System.out.print("a1[0]"+a1[0] +"a1[1]"+ a1[1] +"a1[2]"+ a1[2] + " ");
Then it will give the result as
a1[0] = 3
a1[1] = 7
a1[2] = 5 this is why.
When I give like this
System.out.print("a1[0]"+a1[0] +"a1[1]"+ a1[1] +"a1[2]"+ a1[2] + " ");
Then it will give the result as
a1[0] = 3
a1[1] = 7
a1[2] = 5 this is why.
Prudhvi Kumar said:
1 decade ago
Please any one explain me output for this program and fix method in-detail.
Sarang said:
1 decade ago
a1[0]=3,a1[1]=7,a1[2]=5;a2[0]=3,a2[1]=7,a2[2]=5
a1[0]+a1[2]+a1[3]=15 & a2[0]+a2[2]+a2[3]=15 ..
a1[0]+a1[2]+a1[3]=15 & a2[0]+a2[2]+a2[3]=15 ..
Arnab said:
1 decade ago
I didn't understand....the arguement in fix() in the calling function is a1 whose values are copied in a3. So why the hell a1 gonna be updated if a3 is changed! Besides the return keyword returns the updated value to a2 not to a1. .....!!!!!!
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers