| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java值传递和引用传递 -> 正文阅读 |
|
[Java知识库]Java值传递和引用传递 |
目录 一、Java的数据类型我们要了解java的值传递和引用传递那么我们必须先引出java的数据类型,那我们接下来说说java的数据类型包括什么?
二、值传递?1、定义值传递指的是调用方法时,传递的参数是值的拷贝,方法内对该值不管如何处理都不会对原始的值造成任何的影响,也就是说传递后就互不相关了。 2、代码展示
?总结:我们从结果可以清晰的看出,方法中a进行修改后并没有影响主方法中a的值,从而可以推出我们无论进行如何的操作,都是对原始数据的副本进行操作而非原始数据本身。 3、画图展示?4、String类型属于值传递为什么我单独把String列出来了,先不说废话我先把代码展现出来
?看到结果我们可以看出它满足值传递的结果,但是按我们的理解String属于引用数据类型,它因该传递的是地址但是为啥更改之后却对原数据没有产生影响呢? 我们接下来从底层讲讲,我们都知道基本数据类型的变量是存放在栈里的,而引用数据类型是存放在堆里的。 我们分析我们上面的代码,虚拟机开辟了一个空间用来存放"hallo"这个值,然后我们调用方法时,虚拟机会复制一份,当我们对arr进行加运算后虚拟机又开辟了一个空间存放"halloworld"这个值,然后我们在方法中打印是调用的"halloworld"值的地址,而在主方法时我们的arr还是存放的hallo这个值的地址。 总结:java在方法传递参数时,是将变量复制一份,然后传入方法体去执行。 三、引用传递1、定义引用传递是将变量的内存地址传递给方法,方法操作变量时会找到保存在该地址的变量,对其进行操作,简而言之两者是相互关联的。 2、代码展示
? ? ?从结果上看是不是满足了我们引用传递的定义,但是如果我们执行下述的代码。
从该例子可以看出来值为啥又不满足了呀,?我给大家画个图解释一下 从图可以看出我们在调用? 3、总结引用传递,在Java中并不存在。因为无论是基本类型和是引用类型,在实参传入形参时,都是值传递,也就是说传递的都是一个副本,而不是内容本身。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:15:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |