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

值传递和地址传递的区别

 
阅读更多

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

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

 

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

 

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

 

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

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

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics