很多人再刚接触Java参数传递的时候,会一脸的问号????,到底参数是怎么传递的呢?我们首先要知道Java虚拟机中运行时数据区的分布情况:
所以基本类型的复制都是深度复制,对一个基本类型的改变不会对另外一个基本类型产生任何影响。
引用类型所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在方法的栈中,该变量所指向的对象是放在堆类存中的。引用类型有两种方式访问对象:
1.通过句柄访问对象:(这种方式的优点是变量中存储的是稳定的句柄地址:当对象数据改变时,不需要改变变量所指的地址,即1的指针,只需要改变句柄中的实例数据指针,即2的指针。那为什么不用改变句柄中类型数据的指针呢?那是因为垃圾收集时,只会移动堆中的数据,并不会对方法区进行回收)。
2.通过直接指针访问对象:(这种方式的优点是速度快:因为它节省了一次指针定位开销的时间,当这类开销积少成多也是一项非常可观的执行成本)。
本文发布于:2024-02-01 10:50:26,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170675582836094.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |