`
ye_jinghua
  • 浏览: 31723 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java中参数的传递方式

阅读更多
class TestMain {
	/**
	 * 测试java中参数的传递方式
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		StringBuffer strBuf1=new StringBuffer("default1 ");
		StringBuffer strBuf2=new StringBuffer("default2 ");
		StringBuffer strBuf3=new StringBuffer("default3 ");
		
		do1(strBuf1,strBuf2);

		strBuf3=new StringBuffer("New String3");
		
		System.out.println("strBuf1:"+strBuf1);
		System.out.println("strBuf2:"+strBuf2);
		System.out.println("strBuf3:"+strBuf3);
		
		TestObj tObj1=new TestObj();
		TestObj tObj2=new TestObj();
		do2(tObj1,tObj2);
		System.out.println("tObj1:"+tObj1.a + tObj1.str);
		System.out.println("tObj2:"+tObj2.a + tObj2.str);
	}
	static void do1(StringBuffer strBufA,StringBuffer strBufB){
//		如果是按值传参,将不会改变传入对象strBuf1的值;但结果显示已经改变了传入对象strBuf1的值
		strBufA.append(" New String1 ");
		
//		如果是按引用,将会改变传入对象strBuf2的值;但结果显示没有改变传入对象strBuf2的值?		
		strBufB=new StringBuffer(" New StringBuffer ");//注意:改变了strBufB的指内存地址,所以没有修改到传入对象strBuf1的值
		strBufB.append(" New String2+");
//按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址
	}
	static void do2(TestObj tObjA,TestObj tObjB){
		tObjA =new TestObj();		
		
		tObjB.a=200;
		tObjB.str=" New Str";
	}
}

class TestObj{
	int a=100;
	String str=" default";
}

/*
运行结果:
strBuf1:default1  New String1 
strBuf2:default2 
strBuf3:New String3
tObj1:100 default
tObj2:200 New Str

定义按值传递和按引用传递这两个术语是重要的。
按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。
因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。
按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。
因此,如果函数修改了该参数,调用代码中的原始值也随之改变。

在Java语言中
按值传递的数据类型:八种基本数据类型和String(事实上String也是传递的地址但比较特殊,因为他的内容改变就会产生新对象)
按址传递的数据类型:除String以外的所有复合数据类型,包括数组、类和接口
*/

 

2
1
分享到:
评论

相关推荐

    java中参数传递方式详解

    Java中参数传递方式详解 Java 中参数传递方式详解是 Java 新手入门面临的一个经典的话题。本文意在终结这个话题,Java 中有说法:Java 里面参数传递都是按值传递,怎么理解这句话? 按值传递和按引用传递是来自 ...

    Java零基础-参数传递-2.md

    通过对Java中参数传递方式的学习,我们可以更加熟练地掌握如何在方法间传递数据,这对于编写高效且易于维护的代码至关重要。此外,理解不同类型的参数传递方式也有助于避免一些常见的错误和陷阱,提高代码的质量和...

    11.java参数传递.zip

    11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java...

    13.java参数传递之引用传递.zip

    13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递....

    58.java参数传递机制.zip

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

    Java参数传递PPT

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

    JAVA反射参数传递概略

    在Java中,有两种基本的参数传递方式:值传递和引用传递。值传递是将变量的副本传递给方法,而引用传递则是传递变量指向的对象引用。对于基本类型,Java总是使用值传递;而对于对象,实际上是引用的复制,但仍然保持...

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

    在本文中,我们将讨论 Java 方法参数传递中的引用类型传递。 在 Java 中,引用类型包括类、接口、数组等,都是对象的引用。这些引用类型在传递过程中,会将对象的引用传递给方法体内的变量,而不是对象的副本。因此...

    Java参数传递的经典示例

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

    java传递参数的方法

    java传递参数的方法 很的东西 大家下载学习一下

    Jni中C++和Java的参数传递

    在涉及到C++和Java之间的参数传递时,有一些特定的规则和技巧需要注意。 首先,我们要理解Java对象和C++数据类型的映射关系。在JNI中,Java的基本数据类型如`boolean`, `byte`, `char`, `short`, `int`, `float`, `...

    java参数传递

    这里详细的说明了,java参数传递的过程,引用传递,值传递

    java参数的传递与返回值

    #### 一、Java参数传递的基本概念 在Java中,方法(或称为函数)可以通过参数来接收外部的数据,并且能够返回处理后的结果。参数的传递方式主要有两种:值传递(Pass-by-value)和引用传递(Pass-by-reference)。...

    62.java引用类型的参数传递.zip

    62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递....

    59.java基本类型的参数传递.zip

    59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递....

    java中参数传递的演示

    java中参数传递的演示,分析传值与传引用的区别

    Jni中C和Java的参数传递.doc

    总结一下,JNI 参数传递的关键点包括: 1. **类型映射**:Java 和 C++ 的数据类型不同,需要使用 JNI 提供的类型映射,如 `jint`、`jstring` 等。 2. **字段访问**:使用 JNI 的 `GetFieldID` 和 `GetObjectField`...

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

    Java语言中参数传递的深入剖析 Java语言中参数传递的机制是一个复杂的主题,对于初学者来说,参数传递机制是一个难点。许多教材、论文和帮助手册对Java语言中参数传递的机制进行了探讨,但这些说法不一,有些模糊带...

    关于java的传递方式问题

    Java中方法参数的传递总是采用值传递的方式,即使对于引用类型的变量也是如此。 ##### 3.1 值传递 对于原始类型,传递的是值的副本。这意味着在方法内部对参数的任何改变都不会影响到原变量。 **示例**: ```java...

    浅议JAVA语言中的参数传递.pdf

    在 Java 语言中,参数传递的方式一直存在一定的争论。一些书中认为,在 Java 中参数传递都是按值传递的,但是这种说法存在一定的模糊性。本文将对 Java 语言中的参数传递进行详尽的说明。 参数传递是指在方法调用时...

Global site tag (gtag.js) - Google Analytics