在JAVA中, 指出下列程序运行的结果( )
public class Example {
String str = new String("good");
char[] ch = {'a', 'b', 'c'};
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public void change(String str, char ch[]) {
str = "test ok";
ch[0] = 'g';
}
}good and abc
good and gbc
test ok and abc
test ok and gbc
关于String类型作为形参传递的问题,String类型作为一个特殊的类型,有着其特殊性
String类型是一个引用类型,但是其在内存中存储却是存储在常量池中,按道理,他的传递应当和引用类型的原则一致。
但是它有个特殊的特点在于,String类型的值改变,地址就会改变(内容相同,指向就相同,只要内容不同,指向就不同),所以修改字符串内容时,修改的是字符串变量的引用。
在Java中,数组可以作为方法的形参传递。当数组作为方法参数时,实际上传递的是数组的引用地址,因此对这个数组对象的任何修改都将影响方法外部的调用者,在方法执行结束后仍然保持这种修改。
数组作为方法形参传递的特点和注意事项如下:
1. 数组引用地址被传递,而不是数组的副本和拷贝。因此,任何对数组的修改都会影响到调用者。
2. 数组在方法中被改变后状态是持久的,即方法执行结束时仍然保持修改后的状态。
3. 在调用方法时,需要确保数组已经被创建,并进行初始化。
String类型是一个引用类型,但是其在内存中存储却是存储在常量池中,按道理,他的传递应当和引用类型的原则一致。
但是它有个特殊的特点在于,String类型的值改变,地址就会改变(内容相同,指向就相同,只要内容不同,指向就不同),所以修改字符串内容时,修改的是字符串变量的引用。
在Java中,数组可以作为方法的形参传递。当数组作为方法参数时,实际上传递的是数组的引用地址,因此对这个数组对象的任何修改都将影响方法外部的调用者,在方法执行结束后仍然保持这种修改。
数组作为方法形参传递的特点和注意事项如下:
1. 数组引用地址被传递,而不是数组的副本和拷贝。因此,任何对数组的修改都会影响到调用者。
2. 数组在方法中被改变后状态是持久的,即方法执行结束时仍然保持修改后的状态。
3. 在调用方法时,需要确保数组已经被创建,并进行初始化。