读书人

求解一个有关问题 关于引用类型的有关

发布时间: 2013-08-04 18:26:16 作者: rapoo

求解一个问题 关于引用类型的问题
public class Test {
String a=new String("1");
char [] c={'1','2','3'};
public static void main(String[] args) {
Test t=new Test();
t.show(t.a,t.c);
System.out.print(t.a);
System.out.print(t.c[0]);
}
public void show(String a,char c[]){
a="2";
c[0]='g';
}
}

这写代码 为什么输出的是 1和g

而不是 2和g?

String 在JAVA中到底属于什么数据类型啊。。。
[解决办法]
String引用类型,但是java是值传递。
[解决办法]
String是引用类型的,但是又很特殊,因为它的值是无法改变的,改变的只能是地址。然而当String作为参数时传递的不是地址而是值,所以你得那个代码里栈空间里只有一个地址而且没被改变,而堆里却开辟了两个空间:一个“1”,另一个是“2”

读书人网 >J2SE开发

热点推荐