Thursday 22 August 2019

create an alias/reference of a variable (JAVA)



I have used a lot of C++ and I am quite confused with the way Java works :

if I have a class



public class MyClass{
private int[] myVariable;
...

public int[] getVar(){
return myVariable;
}
}



and then I want to use my variable elsewhere :



public static void main(String[] args){
MyClass myObject = new MyClass();
...
int[] temp = myObject.getvariable();
// use of temp
...

}


is temp a copy or a reference of myVariable ?



How do you get a copy / a reference to it ?


Answer



There is only one int[] in your example. There is no copying at all. What is returned by the method getVar is a reference to the object.



After the line




int[] temp = myObject.getvariable();


both temp and myVariable are references to the same object. You can test this by doing e.g. temp[0] = 9;. The change will be visible in both places.



If you want to copy an array, you can use one of array.clone(), Arrays.copyOf(array, array.length) or System.arraycopy(...) but none of these are used in your example.


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...