返回信息流rt java不是按值调用吗 那为什么可以改变参数中的数组呢?萌新求解,勿喷
这是一条镜像帖。来源:北邮人论坛 / java / #64101同步于 2020/7/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
为什么arrays.sort()可以改变数组顺序呢
cloudsquare
2020/7/7镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
数组可以理解为,数组名是一个指针,指向一组值。然后调用sort函数的时候,将数组指针按照值传递给了函数,也就是函数拿到的新值,还是指向那组数的一个指针。不知道这么解释你能不能理解
【 在 cloudsquare (北极星2333) 的大作中提到: 】
: rt java不是按值调用吗 那为什么可以改变参数中的数组呢?萌新求解,勿喷
: --
小胸弟有前途,不仅不该喷,能有这一问极好
java为啥这样我就不提了,其他人答的都好
更深入的想一下,为什么在java里数组内部数据是可变的呢? java里string可不可以调用sort?string调用sort返回值应该是什么呢?
很快你就可以学到可变数据和不可变数据之分,进而误入函数式编程语言歧途,打开新世界的大门...
也就是说 基本类型是传递值 对象就是传递地址咯?
【 在 q527319547 的大作中提到: 】
: java只有值传递这个没错 但语境不同 基于对象的操作都是通过传递对象在内存中的地址来完成的
: --
听起来是一个很值得学习的问题 请问您说的函数式编程是java的一个特点么 还是一个普遍的问题呢?
【 在 xxpxxxxp 的大作中提到: 】
: 小胸弟有前途,不仅不该喷,能有这一问极好
: java为啥这样我就不提了,其他人答的都好
: 更深入的想一下,为什么在java里数组内部数据是可变的呢? java里string可不可以调用sort?string调用sort返回值应该是什么呢?
: 很快你就可以学到可变数据和不可变数据之分,进而误入函数式编程语言歧途,打开新世界的大门...
: --
借着这个补充一下
https://cr.openjdk.java.net/~briangoetz/valhalla/sov/02-object-model.html
Indeed, it is a common “gotcha” question about whether Java objects are passed by value or by reference, and the answer is “neither”: object references are passed by value.)
【 在 q527319547 的大作中提到: 】
: java只有值传递这个没错 但语境不同 基于对象的操作都是通过传递对象在内存中的地址来完成的
java我不太清楚,但面向对象编程最好都要by-reference以节省资源,提高效率,甚至为了安全性还可以by-reference-to-const