`
wangking717
  • 浏览: 263272 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

我也来说说JAVA方法的参数传递

阅读更多

 

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面试试题,精挑细选

    java 中实现多态的机制是通过方法重写和方法重载来实现的。 28. abstract class 和 interface 有什么区别? abstract class 是一个抽象类,具有部分实现的方法和属性,而 interface 是一个纯粹的抽象接口,所有的...

    IT java 面试题库

    - **封装**: 封装是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类提供的公共(public)方法来实现对内部信息的操作和访问。 - **继承**: 继承是一种通过扩展一个已存在的类...

    Java面试宝典

    - 使用`Cloneable`接口和`clone()`方法来实现对象的浅拷贝。如果需要深拷贝,则需要显式地复制对象的所有字段。 - 另一种方式是使用序列化机制,即将对象序列化为字节流再反序列化。 **13. 一个“.java”源文件中...

    java面试宝典

    21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...

    java 面试题

    Java中的多态主要通过方法重载(overloading)和方法重写(overriding)来实现。此外,使用接口和抽象类也是实现多态的一种方式。 #### 24\. abstractclass和interface有什么区别? - **抽象类**:可以有默认方法...

    java面试题

    35. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 18 36. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?...

    Java框架面试题总结

    - **验证ActionForm**:`ActionServlet`会调用`ActionForm`对象的方法来验证表单数据的有效性。如果验证失败,将返回错误信息到视图层显示。 - **调用Action对象**:验证通过后,`ActionServlet`根据`struts-config....

    Java面试宝典2010版

    重写(Overriding)发生在继承关系中,子类可以重写父类的方法来提供新的实现。在重载的情况下,返回值类型可以不同,但主要依据是参数列表的变化。 ##### 19、构造器Constructor是否可被override? - **答案**:不...

    超级有影响力霸气的Java面试题大全文档

    如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 18、error和exception有什么区别?  error 表示恢复...

    java 面试宝典

    - **继承**:通过子类继承父类并覆盖方法来实现多态。 - **接口**:实现接口并在实现类中提供方法的具体实现,从而达到多态的目的。 **24. abstract class 和 interface 有什么区别?** - **抽象类**:可以包含构造...

    宝典2023版,java最新的学习资料

    但如果想要间接调用,可以通过创建对象并将其作为参数传递给`static`方法来实现。 **十二、`Integer`与`int`的区别** - **问题:** `Integer`与`int`的区别? - **解答:** `int`是基本数据类型,而`Integer`是`int`...

    java笔试题

    当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 为什么?** - 在Java中,传递的是对象的引用而不是值。因此,方法可以修改传入...

    接口回调实现说说评论

    1. **定义接口**:在Activity或Fragment中创建一个接口,例如名为`OnCommentListener`,包含一个方法,如`onCommentInput(String comment)`,这个方法将在用户完成评论输入时被调用,参数是用户的评论内容。...

    1000道 互联网Java工程师面试题 485页_PDF密码解除.pdf

    可以使用`@Param`注解来命名参数,或者直接传递多个参数。 **15. Mybatis动态sql有什么用?执行原理?有哪些动态sql?** - **用途:**动态SQL用于构建基于条件的SQL语句。 - **执行原理:**通过解析XML映射文件中...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【基础】当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 17 【基础】重载(Overload)和重写(Override)的区别。重载的方法能否...

Global site tag (gtag.js) - Google Analytics