您的位置:首页 > 编程语言 > Java开发

Java中值传递和引用传递

2015-01-05 11:53 309 查看
Java中值传递和引用传递

Java中参数的传递是值传递,而不是引用传递。

对于基本数据类型和String字符串类型(按照String s="hello"这种形式定义的字符串),在作为参数被传递的时候,传递的是类型对应的值的拷贝,也就是说,不是对原来的值进行操作,例如int a=1;在经过add(int a){a++}这个方法之后,a的值还是1。这里要注意,这两个a是不相同的,两个a对应的是两个存储单元,只不过将第一个a的存储单元的值复制给了第二个a的存储单元,方法中操作的是第二个a对应的存储单元中的值,所以,无论怎么操作,第一个a对应的存储单元的值始终是1。

对于Java中的引用数据类型,在作为参数被传递的时候,传递进来的是引用对应的地址的值的拷贝。例如Person p = new Person(); 经过add(Person p){p.age++}这个方法之后,发现p对象的age确实加了1。跟上面基本数据类型不同的是,这里传递的并不是引用p对应的对象的拷贝,而是引用p对应的地址的拷贝,上面两句代码的两
4000
个p是不同的,只不过两个p都拥有相同的地址,因为在传递的时候,是将第一个p的地址值的拷贝传递给了第二个p,所以第二个p跟第一个p对应的是同一个内存中的对象,多以操作第二个p的时候,会真实的操作该对象,对象自然发生了变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java