wangking 写道
在群里看到有人在讨论方法参数传递方式,比较有趣。言归正传,JAVA参数传递只有值传递,所谓值传递就是传递基础类型的拷贝和对象类型的引用拷贝。
看代码识真相:
package client;
public class Test {
public static void main(String[] args) {
int j = 5;
changedata(j);
StringBuffer sb = new StringBuffer("wang");
changedata(sb);
System.out.println(j);
System.out.println(sb.toString());
}
private static void changedata(int i) { //参数如果是基础类型,i则是这个基础数据类型的拷贝
i = 100;
}
private static void changedata(StringBuffer sb) { //参数如果是对象类型, sb则是对象类型的引用拷贝
sb.append("king"); //调用引用对象的方法,内部值改变
sb = new StringBuffer("haha"); //改变sb的引用地址,对其原对象无任何影响
}
}
基础数据类型的参数传递:
对象类型参数传递:
- 大小: 15.9 KB
- 大小: 58.3 KB
分享到:
相关推荐
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 15、error和exception有什么区别? error 表示恢复不是...
21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...
35. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 18 36. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?...
36. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 11 37. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此...
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 18、error和exception有什么区别? error 表示恢复...
【基础】当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 17 【基础】重载(Overload)和重写(Override)的区别。重载的方法能否...
21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...
在后端与前端约定好application/json格式传递数据时,因为后台是go强类型语言,在定义api接口时,某些字段要求是整型类型,但是对于前端来说输入框或者从url中的search取到的参数都是字符串,不得不进行前端类型转换...
10.9 面试例题:参数传递170 10.10 面试例题:宏与内嵌函数171 10.11 面试例题:继承173 10.12 面试例题:面向对象的程序设计173 10.13 面试例题:与线程有关的程序设计问题174 10.14 面试例题:废弃内存的自动...
10.9 面试例题:参数传递170 10.10 面试例题:宏与内嵌函数171 10.11 面试例题:继承173 10.12 面试例题:面向对象的程序设计173 10.13 面试例题:与线程有关的程序设计问题174 10.14 面试例题:废弃内存的自动...
在提到上述的概念之前,首先想说说javascript中函数的隐含参数:arguments Arguments 该对象代表正在执行的函数和调用它的函数的参数。 [function.]arguments[n] 参数function :选项。当前正在执行的 Function 对象...