java中参数传递详解:call by value(按值传递)和 call by reference(按引用传递)
来源:互联网 发布:数据嗅探 编辑:程序博客网 时间:2024/05/17 03:07
参数传递的一些知识,不全面部分望指点。
call by value: 按值传递
call by reference: 按引用传递
特点:
call by value。 不改变值,即操作的是一个值的拷贝,所以原值不变。
call by reference 改变值,但是不改变实际参数的参考地址。可以理解为将另一个引用也指向同一个对象。
代码:
public static void st(String str){ // System.out.println(str.hashCode()); str = str.replace("1","2"); // System.out.println(str.hashCode());}public static void st1(StringBuffer stringBuffer){ stringBuffer.append("S"); stringBuffer = new StringBuffer("567"); stringBuffer.append("890");}public static void main(String...args){ String s = "123"; st(s); System.out.println(s); System.out.println(s.hashCode();); StringBuffer str1 = new StringBuffer("sss"); System.out.println(str1); st1(str1); System.out.println(str1);}
输出结果:
48690
49651
123
48690
sss
sssS
String类的replace,返回的是一个新的String对象,然后将str这个引用指向了新的对象。在st1方法中,StringBuffer的append();方法操作的是原对象的值,而且返回的是原对象。
stringBuffer =newStringBuffer("567");而这句则将引用stringBuffer指向了新的对象。
阅读全文
0 0
- java中参数传递详解:call by value(按值传递)和 call by reference(按引用传递)
- Java call by value 和 by reference (值传递和引用传递)
- call by value 和call by reference 部分转载 java 值传递 和 引用传递
- JAVA值传递(call by value)
- call by sharing——JavaScript中“共享传递”、“按值传递”、“按引用传递”
- Java 只有值传递(Pass By Value),没有引用传递(Pass By Reference)
- Java中参数以by value方式而非by reference 方式传递(值传递)
- 值调用(call by value)和引用调用(call by reference)
- PHP参数传递之引用传递及错误Fatal error: Call-time pass-by-reference has been removed解决办法
- call by value 和 call by reference
- call by value 和call by reference
- call by value 和 call by reference
- JAVA中参数传递(按值传递和引用传递)
- Java call by value 和call by reference 的理解
- perl中子程序中参数的两种引用(传递)方式:pass by value and pass by Reference(传入引用)
- Java中方法调用参数传递的方式是传值,尽管传的是引用的值而不是对象的值。(Does Java pass by reference or pass by value?)
- js 中参数传递(值传递和引用传递)
- java当中也有pass-by-value值传递或pass-by-reference地址传递吗
- 基于3D关节点的人体动作识别综述
- 数据结构实验之图论四:迷宫探索
- JSON
- UGUI批量设置图片属性
- Spring + SpringMVC + Mybatis整合SSM框架配置方法
- java中参数传递详解:call by value(按值传递)和 call by reference(按引用传递)
- java块级作用域测试总结
- JSON 数组
- 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZde
- CCF 1038 玩扑克
- AOE关键路径
- PHP+shell实现多线程的方法
- 第七周
- 成了精的太师椅·化蝶·七