这篇文章主要介绍“Java是什么传递”,在日常操作中,相信很多人在Java是什么传递问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java是什么传递”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!开篇先来曝答案,在 Java 语言中,本质只有值传递,而无引用传递,解释和证明详见正文。说到值传递和引用传递我们不得不提到两个概念:值类型和引用类型。通俗意义上来说,所谓的值类型指的就是 Java 中的 8 大基础数据类型:整数型:byte、int、short、long浮点型:float、double字符类型:char布尔类型:boolean从 JVM 层面来讲:所谓的值类型指的是在赋值时,直接在栈中(Java 虚拟机栈)生成值的类型引用类型是指除值类型之外的数据类型,比如:类接口数组字符串包装类(Integer、Double…)从 JVM 的层面来讲,所谓的引用类型是指,在初始化时将引用生成栈上,而值生成在堆上的这些数据类型值传递(Pass By Value)指的是方法传参时,传递的是原内容的副本,因此对副本进行如何修改都不会影响原内容。实现代码如下:程序的执行结果为:调用方法前:18
方法中修改为:30
调用方法后:18从上述结果可以看出,在方法中修改参数并未影响原内容,我们把这种传参方式称之为值传递。引用传递(Pass By Reference)指的是方法传参时,传递的是参数本身,因此对参数进行任意修改都会影响原内容。模拟“引用传递”的实现代码如下:程序的执行结果为:调用方法前:编程师
方法中修改为:百云主机
调用方法后:百云主机从上述的结果可以看出在 paramTest
方法中修改了参数之后,在 main
方法中再打印参数时,发现参数的值也跟着发生了改变,那么似乎我们可以得出结论,Java 中貌似也有“引用传递”,然而实事并如此,我们接着看。我们给上面的代码添加一行,如下所示:程序的执行结果为:调用方法前:磊哥
方法中修改为:神
调用方法后:磊哥从上述结果可以看出,当我们在 paramTest
方法中添加 new char[]
之后,“引用传递”就突然变值传递了?为什么?这是因为,在 Java 语言中本质上只有值传递,也就说 Java 的传参只会传递它的副本,并不会传递参数本身。前面那个带引号的“引用传递”其实只是传递了它的引用副本。所以我们在调用 new char[]
之后,可以看出 n
对象有了新地址,而原内容并未被修改,如果按照引用传递的思路免费云主机域名来看的话,不管执行任何方式的修改都会改变原内容,因此我们可以更加确认 Java 语言中只有值传递。到此,关于“Java是什么传递”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!
这篇文章给大家免费云主机域名分享的是有关SQL如何创建表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 SQL 中通常使用CREATETABLE语句来创建新表CREATETABLE后面带上的是新表的名称,这个语句旨在告诉数据库,你…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。