工作有时候遇到传值,传引用的问题。
网上查询下。我个人感觉最好的解释,参数的副本拷贝,最为容易理解。
主要从几个角度对考虑问题:
1,方法传参过程出现的现象是怎么样?
2,jvm 底层是如何管理这不同参数类型的。
3,jvm 对方法是如何操作的。
方法参数分2种类型:一个基本类型,另一个是对象引用,
JVM把基本类型和对象的引用都是保持Java栈里。
jvm把Java方法参数是局部变量来管理,在实际处理过程中是临时生成一个副本来管理。和原有的参数没有关系。一个副本相对来说就是 参数值的拷贝,即基本类型的值的拷贝,对象的引用的拷贝。
我们有时候会产生错觉,好像是传值,其实,是因为对象引用的拷贝后,对象引用的地址还是同一个。所以在对象引用方法参数,给我们了这种错觉。而基本类型传递。就可以看明确的看到,其实就是一个值的拷贝,经过处理后,会发现和原有的变量值不等了。
即使可以做些简单测试,
对象引用:你可以写test,在方法里,把对象赋值为null,然后你看下外面原来的引用值是否改变。
基本类型也一样方法。效果很明显,两者原来的值都未变。
分享到:
相关推荐
### Java是传值还是传址引用 #### 一、简单类型是按值传递的 Java在处理简单数据类型(如int、boolean等)时采用的是按值传递的方式。这意味着当你将一个简单类型的值作为参数传递给一个方法时,实际上传递的是这...
这意味着无论是基本类型还是引用类型,当作为参数传递时,都会有一个副本被创建并传递到方法内部。然而,对于基本类型,传递的是实际值的副本,而对于引用类型,传递的是对象引用的副本。 在给定的代码示例中,我们...
Java方法参数传值是Java编程中的基础知识点,涉及变量、数据类型和方法调用的机制。在Java中,数据类型分为基本数据类型和引用数据类型。基本数据类型包括布尔型(boolean)、字节型(byte)、短整型(short)、整型...
"java中传值还是传引用的认识" Java 中的参数传递是值传递还是引用传递?这是一个经常引发讨论的问题。在 Java 中,参数传递是按值传递的,也就是说,传递给方法的参数是一个副本,而不是原始值本身。 当一个对象...
在Java编程语言中,"传值与传值后的改变"是一个关键的概念,涉及到函数调用时参数的传递方式。在Java中,有两种基本的数据类型:原始类型(如int, double, char等)和引用类型(如类实例、数组)。它们在函数调用时...
Java只支持两种类型的参数传递:基本数据类型(如int、double等)的传值和引用类型(如类对象)的传值。以下是对给定代码清单的详细解释: 1. **基本数据类型传值**: 在Java中,基本数据类型的参数传递是按值传递...
引用类型的传值行为体现在函数调用和方法参数传递上。当我们把一个引用类型变量作为参数传递给函数时,并不会创建该对象的新副本,而是复制了这个引用。这意味着函数内部对对象的任何修改都会影响到原始对象,因为...
### Java的传值与传引用详解 ...综上所述,理解Java中的传值与传引用的概念,需要区分简单类型和对象类型的不同处理方式,并且明确传递的是值的副本还是引用的副本。这对于编写高效、正确的Java程序非常重要。
在Java编程语言中,函数调用时的参数传递方式有两种:传值(Passing by Value)和传引用(Passing by Reference)。虽然Java官方文档中并未明确指出有传引用这一概念,但在实际操作中,Java的行为类似于传引用,尤其...
Java中,方法参数的传递主要有两种方式:值传递(Pass by Value)和引用传递(Pass by Reference)。不过,Java并没有真正的引用传递,而是通过对象引用来模拟引用传递的效果。下面我们详细讨论这两种方式。 2. 值...
Java中的传值与传引用是Java编程语言中的一种基础概念,它们是Java函数中参数传递的两种方式。 Java中的传值是指函数参数的值被复制到函数内部,在函数内部对参数的修改不会影响原来的参数值。 Java中的传引用是指...
Java参数传递机制是编程中的重要概念,尤其是在Java中,它对于理解如何在方法间操作数据至关重要。本PPT深入探讨了这一主题,旨在帮助学习者彻底理解Java中的参数传递方式。 首先,我们要回顾面向对象的基本概念。...
总结起来,Java中对象作为参数传递时,传递的是对象引用的副本,而不是对象本身。这意味着函数可以修改对象的状态,因为它持有相同的引用,但不能改变对象引用指向另一个不同的对象。这种行为与基本数据类型不同,...
- **通过JSP表达式语言(EL)**:使用EL表达式,如 `${javaVariable}`,可以直接在JavaScript代码中引用JavaBean或作用域内的变量。 2. **JavaScript到Java的传值**: - **表单提交**:通过JavaScript修改表单字段的...
### Java及C++中传值传递、引用传递和指针方式的理解 在程序设计语言中,函数调用时参数的传递方式对理解程序的行为至关重要。本文将深入探讨Java与C++这两种广泛使用的编程语言中参数传递的方式,包括值传递、引用...
通过对典型程序的研究与分析可以看出JAVA语言的参数传递总是传值调用的,但是对于基本类型的参数和对象类型的参数来说,参数传递的情况不完全相同.Java语言不能直接使用传引用调用,但是可以通过数组的方式模拟传引用...
在Java编程语言中,方法参数传递机制涉及到两个主要概念:传值和传引用。了解这两个概念对于编写高效、可靠的代码至关重要。本篇文章将深入探讨Java中的方法传值和传引用问题。 首先,让我们理解什么是传值。在Java...
Java编程语言在处理参数传递时遵循一种特殊的方式,它既不是纯粹的按值传递,也不是纯粹的按引用传递。理解这一点对于深入学习Java至关重要。在Java中,基本数据类型(如int、float、char等)是按值传递的,而对象则...
在Java编程语言中,方法调用和参数传递是核心概念,理解它们的工作原理对于编写高效、可靠的代码至关重要。本文将深入探讨Java中的方法调用、值传递与引用传递,并通过字节码分析来进一步理解这些概念。 首先,我们...