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以外的所有复合数据类型,包括数组、类和接口
*/
分享到:
相关推荐
Java中参数传递方式详解 Java 中参数传递方式详解是 Java 新手入门面临的一个经典的话题。本文意在终结这个话题,Java 中有说法:Java 里面参数传递都是按值传递,怎么理解这句话? 按值传递和按引用传递是来自 ...
通过对Java中参数传递方式的学习,我们可以更加熟练地掌握如何在方法间传递数据,这对于编写高效且易于维护的代码至关重要。此外,理解不同类型的参数传递方式也有助于避免一些常见的错误和陷阱,提高代码的质量和...
11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java...
13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递....
58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递...
Java参数传递机制是编程中的重要概念,尤其是在Java中,它对于理解如何在方法间操作数据至关重要。本PPT深入探讨了这一主题,旨在帮助学习者彻底理解Java中的参数传递方式。 首先,我们要回顾面向对象的基本概念。...
在Java中,有两种基本的参数传递方式:值传递和引用传递。值传递是将变量的副本传递给方法,而引用传递则是传递变量指向的对象引用。对于基本类型,Java总是使用值传递;而对于对象,实际上是引用的复制,但仍然保持...
在本文中,我们将讨论 Java 方法参数传递中的引用类型传递。 在 Java 中,引用类型包括类、接口、数组等,都是对象的引用。这些引用类型在传递过程中,会将对象的引用传递给方法体内的变量,而不是对象的副本。因此...
Java参数传递机制是编程中非常重要的概念,它涉及到基本类型和引用类型的差异。在Java中,参数传递主要有两种方式:值传递(Value Passing)和引用传递(Reference Passing)。虽然Java官方文档并未明确提及引用传递...
java传递参数的方法 很的东西 大家下载学习一下
在涉及到C++和Java之间的参数传递时,有一些特定的规则和技巧需要注意。 首先,我们要理解Java对象和C++数据类型的映射关系。在JNI中,Java的基本数据类型如`boolean`, `byte`, `char`, `short`, `int`, `float`, `...
这里详细的说明了,java参数传递的过程,引用传递,值传递
#### 一、Java参数传递的基本概念 在Java中,方法(或称为函数)可以通过参数来接收外部的数据,并且能够返回处理后的结果。参数的传递方式主要有两种:值传递(Pass-by-value)和引用传递(Pass-by-reference)。...
62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递....
59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递....
java中参数传递的演示,分析传值与传引用的区别
总结一下,JNI 参数传递的关键点包括: 1. **类型映射**:Java 和 C++ 的数据类型不同,需要使用 JNI 提供的类型映射,如 `jint`、`jstring` 等。 2. **字段访问**:使用 JNI 的 `GetFieldID` 和 `GetObjectField`...
Java语言中参数传递的深入剖析 Java语言中参数传递的机制是一个复杂的主题,对于初学者来说,参数传递机制是一个难点。许多教材、论文和帮助手册对Java语言中参数传递的机制进行了探讨,但这些说法不一,有些模糊带...
Java中方法参数的传递总是采用值传递的方式,即使对于引用类型的变量也是如此。 ##### 3.1 值传递 对于原始类型,传递的是值的副本。这意味着在方法内部对参数的任何改变都不会影响到原变量。 **示例**: ```java...
在 Java 语言中,参数传递的方式一直存在一定的争论。一些书中认为,在 Java 中参数传递都是按值传递的,但是这种说法存在一定的模糊性。本文将对 Java 语言中的参数传递进行详尽的说明。 参数传递是指在方法调用时...