首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java中参数的传送方式只有值传递,没有引用传递

2013-03-28 
Java中参数的传递方式只有值传递,没有引用传递?stu1.setname(毛小杰)?????? System.out.println(stu.na

Java中参数的传递方式只有值传递,没有引用传递

?

stu1.setname("毛小杰");

?????? System.out.println(stu.name);

?????? System.out.println(stu1.name);

??? }

???

?

}

?

结果为:

毛杰

毛文杰

毛文杰

毛文杰

毛杰文

毛杰文

毛小杰

毛小杰

?

说明在赋值的过程中,自定义类型是引用传递的,用图中的示例来说,也就是说把A的值赋值给B等于让B指向A在堆中对应的C的内存空间,A和B的改变都会造成堆中C里面存储数据的改变。

?

那么基本类型又是什么情况呢?

?

package test;

?

publicclass test3 {

???

??? privatestaticinta=5;

??? privatestaticintb=10;

??? privatestatic String str="hello";

??? privatestatic String str1="hi";

???

??? publicstaticvoid main(String args[]){

?????? System.out.println("a:"+a);

?????? System.out.println("b:"+b);

??? ??? b=a;

?????? System.out.println("after b=a b:"+b);

?????? b=12;

?????? System.out.println("a:"+a);

?????? System.out.println("b:"+b);

??????

?????? System.out.println("str:"+str);

?????? System.out.println("str1:"+str1);

?????? str1=str;

?????? str1="你好";

?????? System.out.println("str:"+str);

?????? System.out.println("str1:"+str1);

??? }

}

?

结果是:

a:5

b:10

after b=a b:5

a:5

b:12

str:hello

str1:hi

str:hello

str1:你好?????????????

?

说明在赋值过程中基本类型是值传递,就是新开辟一个内存来复制赋值内容,改变传递后的变量对被赋值变量无影响。

热点排行