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
分享到:
相关推荐
java 中实现多态的机制是通过方法重写和方法重载来实现的。 28. abstract class 和 interface 有什么区别? abstract class 是一个抽象类,具有部分实现的方法和属性,而 interface 是一个纯粹的抽象接口,所有的...
- **封装**: 封装是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类提供的公共(public)方法来实现对内部信息的操作和访问。 - **继承**: 继承是一种通过扩展一个已存在的类...
- 使用`Cloneable`接口和`clone()`方法来实现对象的浅拷贝。如果需要深拷贝,则需要显式地复制对象的所有字段。 - 另一种方式是使用序列化机制,即将对象序列化为字节流再反序列化。 **13. 一个“.java”源文件中...
21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...
Java中的多态主要通过方法重载(overloading)和方法重写(overriding)来实现。此外,使用接口和抽象类也是实现多态的一种方式。 #### 24\. abstractclass和interface有什么区别? - **抽象类**:可以有默认方法...
35. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 18 36. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?...
- **验证ActionForm**:`ActionServlet`会调用`ActionForm`对象的方法来验证表单数据的有效性。如果验证失败,将返回错误信息到视图层显示。 - **调用Action对象**:验证通过后,`ActionServlet`根据`struts-config....
重写(Overriding)发生在继承关系中,子类可以重写父类的方法来提供新的实现。在重载的情况下,返回值类型可以不同,但主要依据是参数列表的变化。 ##### 19、构造器Constructor是否可被override? - **答案**:不...
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 18、error和exception有什么区别? error 表示恢复...
- **继承**:通过子类继承父类并覆盖方法来实现多态。 - **接口**:实现接口并在实现类中提供方法的具体实现,从而达到多态的目的。 **24. abstract class 和 interface 有什么区别?** - **抽象类**:可以包含构造...
但如果想要间接调用,可以通过创建对象并将其作为参数传递给`static`方法来实现。 **十二、`Integer`与`int`的区别** - **问题:** `Integer`与`int`的区别? - **解答:** `int`是基本数据类型,而`Integer`是`int`...
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 为什么?** - 在Java中,传递的是对象的引用而不是值。因此,方法可以修改传入...
1. **定义接口**:在Activity或Fragment中创建一个接口,例如名为`OnCommentListener`,包含一个方法,如`onCommentInput(String comment)`,这个方法将在用户完成评论输入时被调用,参数是用户的评论内容。...
可以使用`@Param`注解来命名参数,或者直接传递多个参数。 **15. Mybatis动态sql有什么用?执行原理?有哪些动态sql?** - **用途:**动态SQL用于构建基于条件的SQL语句。 - **执行原理:**通过解析XML映射文件中...
【基础】当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 17 【基础】重载(Overload)和重写(Override)的区别。重载的方法能否...