关于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 ");
Sytem.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
结果为good and gbc;
网上查了很多资料,不是很懂,不过结论就是传入的参数为基本类型时,实参就不改变,传入为非基本类型时,实参随形参改变。在例子中,string为特殊的基本类型(网上说的),所以不改变,而虽然char是基本类型,可传入的是char[]数组!所以不是基本类型,那实参就变。附上基本类型表:
float 4 字节 32位IEEE 754单精度
double 8 字节 64位IEEE 754双精度
byte 1字节 -128到127
short 2 字节 -32,768到32,767
int 4 字节 -2,147,483,648到2,147,483,647
long 8 字节 -9,223,372,036,854,775,808到9,223,372,036, 854,775,807
char 2 字节 整个Unicode字符集
boolean 1 位 True或者false
补充一下,在Java中,String是一个引用类型,但是在作为参数传递的时候表现出来的却是基本类型的特性