zoukankan      html  css  js  c++  java
  • java方法的参数传递

    java 里方法的参数传递只有一种类型:值传递;即将实际参数数值的复制品,传递到方法内,实际参数值本身不变。一般我们传递的参数可以分为两类,一类是基本类型的参数,另一类是引用对象的参数。要想区分这两个,首先需要了解java中jvm的内存模型。如下:

                             

    1.了解完jvm的内存模型后,我们先了解一下基本类型的参数传递,假设 为我们需要传入的实参,i 为与实参对应的形参,jvm则将实参和形参分别存入栈stack中,效果如下图:

                            

     因此基本类型的参数传递中,形参的数值改变不会引起相应的实参的数值发生改变(因为他们存放在不同的地址中)。

    2.引用对象的参数

    由jvm内存机制我们可以了解到,我们自己定义的对象的数据存在堆heap中,当我们引用对象时,就会把对象的数据在堆中的地址存储在栈中。即栈中实参的值就是我们引用的对象的数据在堆中的地址。而我们java中方法参数传递都是值传递,故实参会把地址复制一份给形参,效果如下图:

                        

    所以对象类型的参数在方法中形参所引用的地址的数据变化时,相应实参的数据也会变化。

  • 相关阅读:
    SQL大语句——实现分页,select top后面跟变量出错
    jQuery异步请求(如getJSON)跨域解决方案
    Debug常用命令
    清华操作系统实验--80x86汇编基础
    在Windows10中运行debug程序
    恢复Windows10应用商店
    最少硬币问题
    嵌套矩形问题
    清华大学操作系统实验准备--挖坑
    动态规划入门-数字三角形
  • 原文地址:https://www.cnblogs.com/wfswf/p/14616398.html
Copyright © 2011-2022 走看看