关于这个问题,不同人对它的理解不尽相同。对初学Java的同学来说,可能简单的认为Java中参数传递就是分为值传递和引用传递,至于为什么,因为课本上就是这么说的。对于有些工作年限的程序员来说,可能认为如果传递的参数类型是普通类型,那么就是值传递,如果参数是对象,那么就是引用传递。还有一些人认为Java中只有值传递,就是题主问题中的主题。
对Java编程语言来说,前两种理解是错误的,Java中只有值传递。对于我来说,刚开始也是理解有值传递和引用传递一说的,但是随着自己写代码的积累,慢慢发现并不是那么回事。那为什么只有值传递呢?
首先,来了解一下什么是值传递,什么是引用传递?
值传递是说在调用函数时,将实际参数值复制一份传递到被调用函数中,在被调函数中修改参数值不会影响原实参值。
引用传递是说在调用函数时,将实际参数的地址直接传递到被调用的函数中,在被调函数中修改参数值会影响原实参值。
如果传递的参数类型是普通基本类型,那么一定是复制一份实参值传递给形参的,但是当参数类型是对象的时候,也是复制的一份参数值传递给形参,只不过复制的是对象引用的地址,也就是在内存中分配的存储地址,不是直接传递的引用地址。
此时,可能有人会说那为什么将一个对象传到另一个方法中,在这个方法中修改了这个对象的属性值时,原调用方法中的对象属性值也跟着变了,它不就是引用传递吗?
其实,这是一个很容易迷惑的点。你仔细看看上面的陈述就会发现,不是这么回事。将一个对象传到另一个方法中,传递的是什么?传递的是对象引用的地址,这个对象引用的地址在另一个方法中被修改了吗?原对象引用有受影响吗?并没有吧!
所以,Java中并没有引用传递,只有值传递,不要再搞错了!
静态方法是属于类的,普通方法是属于对象的,外部调用静态方法可以直接用类名.方法名方式,不需要创建对象,而调用普通方法需要对象.方法名的方式,我认为这样设计的目的是程序能够更方便的调用方法,如果程序在多个地方多次调用共同的方法,就不用new很多对象了,多用于工具类。
如何在excel2016的同一张图表中绘制不同的图表类型?1. 首先,整理出需要在同一张图表中反映的内容。2. 选择所有内容,单击“插入”、“柱形图”,然后选择所需的形状。3. 系统自动生成的图表如下图所示。4. 如下图所示,将“上升”内容
怎么样做好网站的 SEO 优化?网站优化不是两句话就能说清楚的,所有的网站优化基本都是一样的。网站优化是一个长期的过程,短则几个月,长则几年。这里有一些常用的方法,仅供参考:关键词选择当你建立首页网站时,你应该先设置目标关键词,千万不要等到
我想买空间域名和服务器,在哪里购买好?说实话,每个人都有自己的优势。这取决于你的业务主要集中在哪里?比如在苏州地区,比较好的本地化服务是苏州工业的互联网平台,它有一个本地化的数据中心和一个技术团队。它响应速度快,可以避免很多不必要的麻烦
男装里,马克华菲、GXG、三弦、SELECTED、杰克琼斯哪个品牌更潮?马克华飞是欧美人,阳光明媚。三仙男装的细节很到位,质量也不太好。有档次感,款式时尚。GXG比较时尚,但倾向都市白领系列,服装版通常很小。Selected是丹麦最畅销的公
135编辑器如何上传本地图片?1. 现在上传图片到微信材料管理-图片材料,进入材料管理-图片库,点击右侧上传按钮,将本地图片上传到微信材料库。2. 进入微信素材库复制图片地址,右击图片,选择“复制图片地址”3。返回135编辑器,通过粘贴图片
买了一套微网站平台源代码,但是需要给卖家提供我的域名,他给开通权限,我才能正式使用,他是如何做到的?卖家要你提供的域名,是对网站做域名授权的源代码,防止买家传播他的源代码。授权后,即使您将源代码发送给其他人,也不能使用。实现方法:有很多这样
手机怎么查看自已家的无线网有几人联网?首先需要使用浏览器打开路由器管理界面,一般为192.168.0.1。或192.168.1.1登录,您可以查看设备列表,了解有多少人登录到您的WiFi。或者下载品牌路由器的管理地址怎么查?家里无线域名改过
交集和并集的符号?交集:表示方法∩。属于A或B的一组元素称为A和B的并集(set),记录为A∪B(或B∪A),读作“A和B”(或“B和A”),即A∪B={x | x∈A,或x∈B}。联合:表示方法∪。属于a和B的元素集称为a和B的交集(se
请问,提高个人信息安全的重要方法有哪些?1. 不要随意暴露你的身份证,更不要把它借给别人。不要让你的密码太简单。没有密码不要连接到WiFi4。浏览网页时不要点击坏链接5。不扫描未知二维码
如何修改网站主页的源代码?查看和修改网页源代码的方法如下:1。打开要修改的网页,然后按键盘上的“F12”,将出现一个源代码页:2。然后单击左上角的小箭头将其高亮显示:3。然后用鼠标选择要修改的内容,下面会出现相应的代码,如下所示:5。此时,