• java方法的参数传递


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

                             

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

                            

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

    2.引用对象的参数

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

                        

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

  • 相关阅读:
    day10servlet编程
    day9http协议
    day8 服务器
    day4 DOM,BOM
    k均值
    asp.net mvc 下拉列表
    asp.net mvc  Ajax.BeginForm 异步上传图片的问题
    sqlserver 存储过程 游标实例
    中篇: php 微信支付 基于Thinkphp3.2开发
    下篇: php 微商城 基于Thinkphp3.2框架开发
  • 原文地址:https://www.cnblogs.com/wfswf/p/14616398.html
Copyright © 2020-2023  润新知