Câu hỏi phỏng vấn Java
Câu hỏi

Is Java pass-by-reference or pass-by-value?

Câu trả lời

Java is strictly pass-by-value. This means that when a variable is passed to a method, a new copy of the variable is created and used in the method. If the variable holds a primitive data type, the value of the primitive is copied. If the variable holds an object reference, the value of the reference (the address of the object in memory) is copied, not the object itself[1][2][3][4][6].

When you pass an object reference to a method, you are passing the reference's value, so the method receives a copy of the reference. Any changes to the object through this reference will affect the original object because both the original reference and the copied reference point to the same object in the heap. However, if you change the reference itself to point to a different object, the original reference outside the method will not be affected[1][2][3][4][6].

This behavior often leads to confusion and makes it seem like Java is pass-by-reference, especially since changes made to the object inside the method reflect outside the method. However, this is not true pass-by-reference as seen in languages like C++, where the actual memory address of the variable is passed and changes to the parameter itself can affect the original variable[4].

I...

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

What is the difference between throw and throws ?

junior

What is JVM?

middle

If an object reference is set to null , will the Garbage Collector immediately free the memory held by that object?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào