首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

Java 是值传递还是引用传递?

2024-12-18 来源:化拓教育网

开篇名义,首先就把结论表明--->Java是值传递还是引用传递起决于传递的参数是基本数据类型(int,byte,long等)还是引用数据类型(String和类变量)。

废话不多说,上代码。

代码很简单,图一中调用静态方法IntValues(int t),毫无疑问是传递值,因为如果是引用传递,那么二者打印的值是一致的。很明显,a--之后,t的值没有发生改变。

图二也是一样,清晰明了,把方法参数的值赋值给a,然后改变a的值,二者值打印均一致,那是因为t代表的是一个堆内存的地址,基本数据类型用=、+=、-=、等等符号代表把右边的值拷贝一份给左边,二者之间不会有联系,引用数据类型则大大不同,打个比方,它们相当于传递了一把钥匙,大家都能打开同一扇门,即大家都是对同一个堆内存的数据进行操作,而第二次打印不同是因为a变量重新赋值的缘故,地址指向另一块堆内存。

如有不当之处,还望大神多多指明,欢迎探讨,O(∩_∩)O哈哈~

显示全文