ja不支持值类型struct,带来了哪些优势?
作者:卡卷网发布时间:2025-01-10 19:22浏览数量:75次评论数量:0次
说实话,最开始我也觉得这是个设计缺陷。毕竟C++、C#都支持struct,为啥Ja偏要特立行?直到有一天我突然开窍...
想象一下,如果你在厨房做菜,有十种不同形状的铲子,每个都有特定用途。听起来很专业对吧?但实际上99%的时候,一个标准铲子就能搞定所有事情。
Ja正是秉承了这种理念——<>EverythingisanOject>(除了基本类型)。不用再纠结用struct还是class,不用考虑值类型和引用类型的区别,所有的复杂类型都是对象。这种简单一的设计思想,让代码更容易理解和。
一直有的一个疑惑:性能的会差吗?
没有struct到底会不会影响性能?实际上JVM的逃逸分析和标量替换优化可以智能地将对象优化成栈上分配,现在的内存访问已经非常快,另外对象池等设计模式可以很好地解决频繁创建对象的问题
就像现在的CPU和内存都这么强了,你还会在意微信多用了1M内存吗?
带来的优势:面向对象更纯粹
记得大学刚学编程时,Ja课的老师跟我们说:"编程范式就像武功招式,你可以学很多种,但要成为,得专精一门。"
Ja取消struct,某种程度上迫使我们更多地思考面向对象的设计。当你不能用struct简单封装数据时,自然会思考更多关于对象职责、封装、继承这些面向对象的核心概念。
举个栗子:
软件开发中有个理:<>唯一不变的就是变化>。今天你用struct封装的简单数据结构,明天可能就需要添加行为和状态。
Ja的设计鼓励你一开始就用面向对象的方式思考,这样未来扩展时就不会遇到重构的烦恼。
写在最后
所以说,Ja不支持struct看似是个,实际上是一种很有远见的设计选择。有时候看似的不足,恰恰成就了一个技术的伟大。
如果觉得文章有帮助,欢迎点赞+关注,我是旷野,探索无尽技术!
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
相关推荐

你 发表评论:
欢迎