Java的传值(by value)和传引用(by reference)的讨论
来源:互联网 发布:淘宝百度推广 编辑:程序博客网 时间:2024/05/22 12:31
有一种说法
Java都是传值
因为传引用,也是把引用的值--地址,赋给另外一个引用
但我觉得:
如果说
传引用只是把引用的值--即对象的地址传入
从而说是传值
进一步说Java都是传值的话
那我觉得C里面传指针也是传值啊
指针你也可以认为是一种数据类型,它的值也是地址
传指针,也是把它的值--即另一个数据对象的地址传入
只不过指针可以用指针操作符
而引用不可以,而且Java限制你对地址直接操作而已
所以我的观点,不要太计较传值还是传引用
记住Java基本类型和对象引用作为参数传递,其结果是有区别的,而且知道区别是什么,就够了
如果你觉得按照传值、传引用,可以很好的来理解这种区别
那你就这么做,没有什么不可以的
基本类型传递和对象引用传递:
基本类型传递,你不能改变原变量的值
引用传递,你也不能改变引用本身的值--地址,即你不能使传入的引用指向一个新的对象,但你可以改变传入引用所指向的对象的内容
其实C传指针又何尝不是这样
我觉得传引用,就是指你可以改变它所指向的对象的内容
所以,从这个意义上来说,也可以认为Java有传引用(by ref)一说,不是吗?
何必要如此较真呢?
搞清楚运作机理就行了
更多请看:http://topic.csdn.net/u/20090524/12/382c825b-4cf6-4950-8a77-47bb462a5402.html?seed=1026044354
- Java的传值(by value)和传引用(by reference)的讨论
- 方法参数中pass by reference(传引用)和 pass by value(传值)的区别
- Java call by value 和 by reference (值传递和引用传递)
- Java call by value 和call by reference 的理解
- Java的参数传值方式by value而不是by reference
- call by value 和call by reference 部分转载 java 值传递 和 引用传递
- java中参数传递详解:call by value(按值传递)和 call by reference(按引用传递)
- Java中方法调用参数传递的方式是传值,尽管传的是引用的值而不是对象的值。(Does Java pass by reference or pass by value?)
- [摘]Java中的参数,究竟是传值(by value),还是传引用(by reference)?
- Java 只有值传递(Pass By Value),没有引用传递(Pass By Reference)
- 值调用(call by value)和引用调用(call by reference)
- call by value 和 call by reference的区别
- 函数参数之 传常引用(passed by reference to const)替换 传值(passed by value)
- 函数参数之 传常引用(passed by reference to const)替换 传值(passed by value)
- java中的 by value or by reference
- java中的 by value or by reference
- call by value 和 call by reference
- call by value 和call by reference
- C#文件操作
- 使用jQuery模拟Google的自动提示效果
- Linux从零开始
- 关于 __declspec(novtable) 的使用原则
- Informix 与 Mysql 命运
- Java的传值(by value)和传引用(by reference)的讨论
- 一个build.xml实例
- java把字符串转化为二进制,再把二进制转换成字符串的一个小例子
- Oracle and Java Stored Procedures
- 非SYSTEM用户导出其他模式的数据需要什么权限?
- 录制保存视频
- 关于索引的测试!
- bash-tips
- HOW TO SETUP ORACLE ON A RAW PARTITION