java函数的参数传递和String类型
来源:互联网 发布:网络喷子无脑 编辑:程序博客网 时间:2024/05/19 17:47
以下内容摘自java函数的参数传递和String类型 http://www.blogjava.net/thuixy/archive/2009/06/06/280302.html
说完了java的String类型,我们最后看看java函数参数的传递,到底是值传递还是引用传递呢?一般的说法是对于基本类型比如int、char是值传递,对于对象类型是引用传递。这种说法没错,但是请看下面的例子:
String s=”abc”;
change(s);
System.out.println(s);
public void change(String str)
{
str=”abcd”;
}
上面的程序会有什么结果呢?打印abc还是abcd,运行程序会发现打印的是abc,完了,似乎不合乎常理,按理说String 也是对象,应该是引用传递才对啊,有的同学知道java的String类型是不可变类型,会得出结果abc,具体解释是String就相当于是char[]的包装类。包装类的特质之一就是在对其值进行操作时会体现出其对应的基本类型的性质。在参数传递时,包装类就是如此体现的。所以,对于String在这种情况下的展现结果的解释就自然而然得出了。同样的,Integer、Float等这些包装类和String在这种情况下的表现是相同的。下面从函数参数传递的方式来理解也可以得出相同的结果。
java的参数传递本质上都可以认为是值传递,对基本类型自然不必说,对于对象类型,传递的是对象的地址,地址是个数字,也是基本类型,所以也还是值传递的, 有了这个基础,上面的题目可以这样理解,s是字符串abc的地址,调用change方法时,把s的拷贝赋给str,即str也指向abc,但是在方法里又把str指向abcd,str就是abcd的地址了,但是s还是指向的abc。
- java函数的参数传递和String类型
- java函数的参数传递和String类型
- Java值传递和地址传递:关于String类型和集合类型作为函数参数时传值问题的测试
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- java之传递String类型的参数
- Java-String类型的参数传递问题
- [Java]String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- java的String类型作为参数传递
- Java-String类型的参数传递问题
- java 函数参数的传递方式说明(string、 引用类型、基本类型)
- Windows下模拟Linux 环境--VMware Player
- 报表开发小结
- OGRE地形生成
- JAVA中,2进制的负数表达形式
- 花生壳学习的论坛
- java函数的参数传递和String类型
- 60个英文阅读网站推荐
- OGRE地形配置文件解析
- spring中的idref和ref的区别
- CLOSE_WAIT状态分析
- Javascript的变量与delete操作符[ZT]
- flex RESULT_FORMAT_E4X对象转化为ArrayCollection
- 下雨天
- j2me与j2ee通信示例(2)