我无法检查我的一些Java代码。
我有一个数组:
String[][] myString = new String[3][3];
然后我有一个方法:
public String getString(int x, int y) {
return myString[x][y];
}
如果我这样做:
String tmp = getString[0][1];
tmp = "Hello";
这会将myString的值0,1更改为“Hello”,还是会将tmp重新指向读取“Hello”的字符串?
答案 0 :(得分:3)
不,不会。
为变量tmp
设置新值不会影响您的数组。如果要更改数组的值,则必须执行
myString[0][1] = "Hello";
或(更好)使用setter。
答案 1 :(得分:2)
在java中,变量名称是对内存中位置的引用。因此:
String tmp = getString(0,1);
tmp = "Hello";
相当于:
String tmp;//Declares a reference with the name 'tmp'
tmp = getString(0,1); //points 'tmp' to the result from your getter function
tmp = "Hello";//re-points 'tmp' to the string 'Hello'
这不会影响原始字符串多维数组myString
。
请注意,在Java中,使用Lists
的更复杂概念而不是使用原始数组可能更好。 List<List<String>>
等同于String[][]
但具有更多功能和可移植性。
答案 2 :(得分:1)
它将重新指向String
读数“Hello”。重新分配硬编码字符串将分配刚刚创建的新实例。
答案 3 :(得分:0)
使用它来更改数组的值
myString[0][1] = "Hello";
要更改引用的值,请使用此
String tmp = getString[0][1]; //points 'tmp' to a place in your array
tmp = "Hello";//now points 'tmp' to "hello" and this will not effect the array
答案 4 :(得分:0)
在java以及许多其他流行语言中,&#34; =&#34;的左侧。 sign是您为其赋值的那个。右侧是指定值。
VARIABLE = value_to_be_assigned_to_variable