为什么 Java 的类型引用全都是指针传递呢?

2019-08-24 16:56:53 +08:00
 gramyang

以前不觉得,现在发现这种设计真的是有毒。

java 原生的深拷贝方法麻烦无比,用 gson 来做深拷贝简单点,但是为了避免栈溢出,一些存在相互引用可能的类型需要加上 transient,并且在深拷贝后再把 transient 变量赋值进去。

其实像 go 那样使用肥指针就不会有这么多幺蛾子了。。

6165 次点击
所在节点    Java
22 条回复
Aresxue
2019-08-26 15:21:29 +08:00
两个原因,快还有"懒"。快是指针存在虚拟机栈里,copy 起来速度奇快,"懒"是 JVM 的实现人员觉得没必要为 1%的场景去花费太多精力,有那空不如研究研究垃圾收集器啥的。。。不过听说新版本好像有这个意向?
shm7
2019-08-27 12:59:13 +08:00
因为快吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594775

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX