Java按值传递

来源:百度知道 编辑:UC知道 时间:2024/05/29 22:39:58
什么是JAVA按值传递,能举个例子,详细一点的,我看过几个都看不懂

默认情况下是引用传递

OjbectA a1 = new ObjectA();
OjbectA a2 = a1;
引用传递时,对a2操作相当与对a1操作
也就是说:a2 与a1 是同一个对象的两个不同的名字

而在值传递时,a2会另外分一个与a1不同的空间
对任何一个对象操作都不影响到对方

这跟指针式差不多的,说白啦值传递是值本身变化,而引用传递就是指针的变化

java的按值传递有两中,
1.传递非引用,比如说传递简单数据类型
public void aaa(int i,int j){
//这里的i,j无论怎么赋值他们都不会值都不会改变
i=5;j=100;
System.out.println(" i = " + i + " j = " + j);
}
因为int i,int j是形参,当他进入aaa这个函数体内时,java会在分配给他们一个新的内存地址,而i=5;j=100也是为新的内存地址赋值,说的通俗点,你可以当int i;int j只是传进来的参数的一个copy,改了copy的东西,原来的当然不会改变了,
希望对你有所帮助

在Java里面参数传递都是按值传递”。事实上,这很容易让人迷惑,下面先分别看看什么是按值传递,什么是按引用传递,只要能正确理解,至于称作按什么传递就不是个大问题了。 1:按值传递是什么 指的是在方法调用时,传递的参数是按值的拷贝传递。示例如下: public class TempTest { private void test1(int a){ //做点事情 } public static void main(String[] args) { TempTest t = new TempTest(); int a = 3; t.test1(a);//这里传递的参数a就是按值传递 } } 按值传递重要特点:传递的是值的拷贝,也就是说传递后就互不相关了。 示例如下: public class TempTest { private void test1(int a){ a = 5; Sy