`
wangdi
  • 浏览: 75673 次
  • 性别: Icon_minigender_1
  • 来自: 不要订阅我啦!!
社区版块
存档分类
最新评论

Java传递参数的机制

阅读更多
Java究竟是应该按照什么来传递参数?值?引用?还是两者皆有?

其实,弄清楚这个问题得从概念入手。什么是按值传递,什么是按照参数传递。

定义一个变量TestObject obj = new TestObject(); 然后把 obj 作为参数传递给一个方法。如果在这个方法中,只能改变obj指向的这个对象的内容,那就是“值传递”,传过去的值就是指向这个对象的指针。如果在这个方法中通过操作,使得返回后的obj指向另外一个对象,那就是“引用传递”,传过去的是对这个指针变量的“引用”。

public class Para1 {
    public static void main(String[] args) {
	StringBuffer sb = new StringBuffer("Hello ");
	System.out.println("Before change, sb = " + sb);
	changeData(sb);
	System.out.println("After changeData(n), sb = " + sb);
    }

    public static void changeData(StringBuffer strBuf) {
	//strBuf = new StringBuffer("Hi ");
	strBuf.append("World!");
    }
}


把strBuf = new StringBuffer("Hi ");行注释掉和不注释掉将看到两个不同的结果注释的时候:
Before change, sb = Hello
After changeData(n), sb = Hello World!
不注释掉的时候:
Before change, sb = Hello
After changeData(n), sb = Hello
当不注释掉的时候并没有出现:
Before change, sb = Hello
After changeData(n), sb = Hi World!

这说明了,在strBuf = new StringBuffer("Hi ");这行中,strBuf在内存中开辟了一个新的存储地址,不再和开始的sb指向同一个位置,所以,print出来的sb的值没有改变。这个时候的strBuf为"Hi World!"(可以在changeDate方法里面print出来),sb为"Hello"。

所以,根据上面的概念,Java传递参数是属于按值传递,这种情况下参数的值就是对该对象的引用。
分享到:
评论
8 楼 橙柿布竹 2007-04-23  
不是吧! 我们 老师 说  JAVA只有 (值传递)!
说是为了 JAVA的安全机制 考虑的!
7 楼 cherami 2007-04-23  
Java参数传递方式:http://www.jiehoo.com/java-pass-parameter.htm
6 楼 fly_ever 2007-01-22  
在java中都是值传递吧,或者说传递的都是副本。
5 楼 Godlikeme 2007-01-22  
觉得用stringbuffer这个例子并不恰当,换为string 就不成立了,会让初学者很晕。
4 楼 Xfire 2007-01-22  
我到觉得写得挺好,简单明晰,为圈子积累人气嘛
3 楼 killvin 2007-01-08  
java的基本知识,还需要专门写出来?-建议在入门讨论中发表
2 楼 shaobin0604 2007-01-08  
in C and JAVA, arguments are passed by value.
1 楼 wangdi 2006-10-02  
本文其实本来想自己写的,也想好了自己应该怎样去写。但是写好了发现还有一篇文章比自己的写的更加好(http://www.csdn.net/develop/article/22/22025.shtm)。所以,就把自己的理解加上他的例子写成一个文章了。。

相关推荐

    58.java参数传递机制.zip

    58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递...

    Java方法参数传递机制原理解析

    Java方法参数传递机制是指在Java中,方法调用时传递参数的机制。参数传递机制可以分为两种:值传递和引用传递。 值传递是指基本数据类型的参数传递,值传递的体现是数值的传递。在值传递中,方法调用时传递的参数值...

    Java参数传递PPT

    Java参数传递机制是编程中的重要概念,尤其是在Java中,它对于理解如何在方法间操作数据至关重要。本PPT深入探讨了这一主题,旨在帮助学习者彻底理解Java中的参数传递方式。 首先,我们要回顾面向对象的基本概念。...

    Java参数传递的经典示例

    Java参数传递机制是编程中非常重要的概念,它涉及到基本类型和引用类型的差异。在Java中,参数传递主要有两种方式:值传递(Value Passing)和引用传递(Reference Passing)。虽然Java官方文档并未明确提及引用传递...

    java方法的参数传递其二.docx

    Java 方法参数传递是 Java 编程语言中的一种基本机制,在方法调用时将参数传递给方法体内的变量,但是在传递过程中,参数的类型会对传递结果产生影响。在本文中,我们将讨论 Java 方法参数传递中的引用类型传递。 ...

    java 参数传递

    Java 参数传递机制详解 Java 中的参数传递机制是一个经久不息的讨论...Java 参数传递机制详解,揭开了 Java 中的参数传递机制的奥秘,详细分析了基本类型和对象作为参数传递的机制,并揭开了对象作为参数传递的迷惑。

    androidNDK编程java传递参数到c

    总之,Android NDK编程中Java传递参数到C的关键在于理解JNI的工作原理,正确声明和实现`native`方法,以及掌握Java与C/C++之间不同类型数据的转换规则。通过熟练运用这些技巧,开发者可以在Android应用中充分利用...

    利用ASP实现JAVA动态参数的传递

    然而,在Java程序与Web页面之间建立有效的参数传递机制,尤其是对于那些不可预知或经常变化的动态参数,成为了一项挑战。传统的手动修改HTML代码来更新参数的方式不仅效率低下,而且容易出错,尤其是在参数频繁变化...

    java参数传递 java 参数.doc

    Java 参数传递机制是编程中的重要概念,尤其是在Java中,它涉及到“值传递”和“引用传递”的理解。这里我们将深入探讨这两个概念,并结合给定的示例代码进行解析。 首先,我们看“值传递”。在Java中,基本类型...

    JAVA语言中参数传递的深入剖析.pdf

    Java语言中参数传递的深入剖析 Java语言中参数传递的机制是一个复杂的主题...Java语言中参数传递机制是一个复杂的主题,需要深入地剖析Java语言的变量内存分配机制和参数传递机制,以便更好地理解Java语言的工作机制。

    Java:按值传递还是按引用传递详细解说

    本文将深入探讨Java中的参数传递机制,并通过具体的代码示例和内存分配图解来帮助读者理解按值传递和按引用传递的概念。 #### 二、按值传递的概念与特点 按值传递是指在函数或方法调用过程中,传递给函数或方法的...

    方法的参数传递机制测试类

    方法的参数传递机制测试类,以供大家交流之用。

    java参数传递

    1. **HTML文件**: 用于定义Applet的位置和传递参数。 2. **Java Applet**: 实现具体逻辑并显示结果。 ### 二、参数传递机制 #### HTML文件中定义参数 在HTML文件中,我们使用`<PARAM>`标签来定义传递给Applet的...

    浅析Java引用类型和方法参数传递

    本文将深入探讨Java中的引用类型及其如何影响方法参数的传递机制。通过具体实例,我们将揭示值类型与引用类型之间的差异,并解释在实际编程过程中可能遇到的一些常见困惑。 #### 二、Java的数据类型 Java语言支持两...

    java参数传递时到底是值传递还是引用传递分享.pdf

    Java参数传递机制是一个常见的面试问题,它涉及到Java语言的基础特性。Java中参数传递的方式有两种理解:值传递和引用传递,但这两种说法实际上是对同一种机制的不同角度的描述。下面将详细解释这两种理解方式。 ...

    Java方法参数传递如何实现

    Java方法参数传递是Java编程语言中一个重要的概念,涉及到方法参数的传递机制。了解Java方法参数传递的实现机制对于Java开发者来说是非常必要的。本文将详细介绍Java方法参数传递的实现机制,并通过示例代码进行讲解...

    java基础面试题方法的参数传递机制

    java基础面试题方法的参数传递机制本资源系百度网盘分享地址

    java参数传递时到底是值传递还是引用传递[归类].pdf

    Java中的参数传递机制是一个经常引起讨论的话题,尤其是在面试和学习过程中。Java的参数传递方式实际上是一种特殊的"值传递",通常被称为"按引用传递对象的引用",这与C++等语言中的引用传递有所不同。以下是对这个...

    java值传递与引用传递

    在Java编程语言中,函数参数的传递方式有两种:值传递和引用传递。理解这两种机制对于编写高效、无误的代码至关重要。以下是对这两种传递方式的详细解析。 首先,值传递是指函数调用时,实际参数的值被复制一份传给...

Global site tag (gtag.js) - Google Analytics