`
nicegege
  • 浏览: 589390 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

值传递和地址传递的区别

 
阅读更多

首先了解一下jvm的内部如何保存数据:

1.jvm中每个线程都对应一个运行时内存区-----栈。栈中存放线程自己用到的所有变量。

 

2.jvm规定栈和堆分开。栈保存基本数据类型和对象引用。而对象保存在堆里。

 

3.对象引用中保存的值是堆中对象的地址。

 

调用方法时,实参赋值形参,

值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

 

分享到:
评论

相关推荐

    值传递,指针传递,引用传递的区别,内含可运行代码和详细解释

    另一方面,值传递由于形参和实参内存地址不一样,有些功能并不能实现(swap()),因此,除了极为简单的函数会使用值传递外,大多数会采用引用传递。而对于指针传递,则在涉及数组的情况下使用较多,因为指针本身会给...

    值传递和引用传递

    本文将详细介绍值传递和引用传递的概念、用法以及它们之间的区别,并通过Java语言中的具体示例来加深理解。 #### 二、值传递 **值传递**是指在函数或方法调用时,传递给函数的实际参数的值被复制一份到形参,即形参...

    java 值传递和引用传递的比较

    值传递和引用传递的主要区别在于: 1. 变量的修改:值传递的参数在方法内部的任何修改都不会影响原始变量;引用传递则会改变原始对象的状态。 2. 内存消耗:值传递涉及到复制变量的副本,可能会消耗额外的内存;而...

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

    在Java编程语言中,关于参数传递的方式一直存在两种观点:一种认为Java仅支持按值传递,另一种则指出Java同时支持按值传递和按引用传递。实际上,这两种观点并非完全对立,而是根据不同的角度来描述Java中的参数传递...

    Java面向对象值传递和引用传递

    值传递和引用传递的区别可以用一个简单的例子来解释:值传递是一样的设计图纸,你可以根据这个设计图纸盖一个新的房子,然后你可以随便修改这个房子,而不影响原来的房子。引用传递是把家门牌号告诉你,然后你来我家...

    C语言地址传递与值传递

    C语言中的函数调用机制包括值传递(value passing)和地址传递(address passing),通常被称为按值传递和按引用传递。C语言默认使用的是值传递机制,但是可以通过传递指针来实现类似地址传递的效果。下面将详细介绍这两...

    值传递与地址传递的区别.pdf

    “值传递与地址传递的区别” 在C语言中,函数参数的传递方式有三种:值传递、地址传递和引用传递。今天我们将逐个探讨这三种传递形式,并解决一些常见的问题。 值传递 在值传递中,函数参数是通过值的拷贝来传递...

    java值传递与引用传递

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

    C#笔记值传递和引用传递

    在C#编程语言中,了解值传递和引用传递的概念至关重要,因为这直接影响到函数或方法如何处理参数。本文主要探讨这两个概念以及与之相关的知识点。 首先,值传递是指当一个方法或函数调用时,实际参数(即调用时提供...

    java中只有值传递

    Java中传递对象时传递的并不是对象中的内容, 而是对象的地址。

    详解java的值传递、地址传递、引用传递

    很多开发者对java的值传递和地址传递存在误解,认为java中的基本数据类型是值传递,而对象是地址传递或引用传递。事实上,java中的所有参数传递都是值传递的,而不是地址传递或引用传递。 值传递是指当方法调用时,...

    12.参数传递之值传递.zip

    12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值传递.zip12.参数传递之值...

    Delphi值传递和引用传递实例

    Delphi,作为一款基于Pascal语法的面向对象的编程环境,提供了两种主要的参数传递机制:值传递(ByValue)和引用传递(ByReference)。这两者在处理函数或方法的参数时有着显著的区别,对程序性能和数据安全有直接...

    值传递与引用传递-内存解析

    以C++为例,以下代码展示了值传递和引用传递的区别: ```cpp #include // 值传递函数 void valuePass(int x) { x = 10; // 这里修改的x是副本 } // 引用传递函数 void referencePass(int& ref) { ref = 20; //...

    为什么Java只有值传递

    我们先看一下值传递和引用传递的概念和区别 值传递:是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。 引用传递:是指在调用函数时将实际参数的地址直接...

    C++单向按值传递(产生临时对象) 双向按引用传递(不产生临时对象不占任何内存).rar

    本资料主要探讨了两种常见的参数传递方式:按值传递(pass by value)和按引用传递(pass by reference)。下面将详细阐述这两种方法的特点以及它们在实际编程中的应用。 一、按值传递(Pass By Value) 按值传递是...

    C#编写的一个高级语言程序——值传递2

    5. **匿名函数和lambda表达式**:在C#中,值传递同样适用于匿名函数和lambda表达式。这些特性使得函数式编程风格成为可能,但同样遵循值传递的原则,除非使用`ref`或`out`。 6. **性能影响**:值传递相比引用传递...

Global site tag (gtag.js) - Google Analytics