2016 - 2024

感恩一路有你

java编程 为什么说java里面只有值传递?

浏览量:1381 时间:2021-04-05 17:17:28 作者:admin

为什么说java里面只有值传递?

关于这个问题,不同人对它的理解不尽相同。对初学Java的同学来说,可能简单的认为Java中参数传递就是分为值传递和引用传递,至于为什么,因为课本上就是这么说的。对于有些工作年限的程序员来说,可能认为如果传递的参数类型是普通类型,那么就是值传递,如果参数是对象,那么就是引用传递。还有一些人认为Java中只有值传递,就是题主问题中的主题。

对Java编程语言来说,前两种理解是错误的,Java中只有值传递。对于我来说,刚开始也是理解有值传递和引用传递一说的,但是随着自己写代码的积累,慢慢发现并不是那么回事。那为什么只有值传递呢?

首先,来了解一下什么是值传递,什么是引用传递?

值传递是说在调用函数时,将实际参数值复制一份传递到被调用函数中,在被调函数中修改参数值不会影响原实参值。

引用传递是说在调用函数时,将实际参数的地址直接传递到被调用的函数中,在被调函数中修改参数值会影响原实参值。

如果传递的参数类型是普通基本类型,那么一定是复制一份实参值传递给形参的,但是当参数类型是对象的时候,也是复制的一份参数值传递给形参,只不过复制的是对象引用的地址,也就是在内存中分配的存储地址,不是直接传递的引用地址。

此时,可能有人会说那为什么将一个对象传到另一个方法中,在这个方法中修改了这个对象的属性值时,原调用方法中的对象属性值也跟着变了,它不就是引用传递吗?

其实,这是一个很容易迷惑的点。你仔细看看上面的陈述就会发现,不是这么回事。将一个对象传到另一个方法中,传递的是什么?传递的是对象引用的地址,这个对象引用的地址在另一个方法中被修改了吗?原对象引用有受影响吗?并没有吧!

所以,Java中并没有引用传递,只有值传递,不要再搞错了!

我是『Java实战技术』,关注我获取更多原理分析、实战技术!

Java是学些什么内容的,容易学吗?

将学习过程分为3个阶段分别解释一下:


1,首先要学习Java基础,数据类型、基本语法、常用数据结构和类,网上资源很多。


2,然后结合工作内容,学习常用框架,比如Web开发常用Spring Boot,注意框架学习时要挑选当前的Top3,已经过时的或者太新还看不清楚未来的,都不太适合新手学习。


3,随着学习进阶,逐步可以独当一面,在工作中积累项目经验、提高技术水平,现在技术发展迭代很快,终身学习。

java怎么样构造函数复制一个对象?

一、用Object 本身的复制对象的方法, clone()。对象可克隆的类必须实现Cloneable接口,并且clone方法是浅克隆。二、类实现Serializable,用ObjectOutputStream、ObjectInputStream 来复制对象。对象克隆有点复杂,尤其是第一种。关于这个问题你可以搜索:JAVA深复制(深克隆)与浅复制(浅克隆) 这篇文章看看。

java编程 如何复制函数结果 如何使用粘贴函数进行计算

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。