当前位置:首页 > 每日看点

ja不支持值类型struct,带来了哪些优势?

卡卷网1年前 (2025-01-10)每日看点289

说实话,最开始我也觉得这是个设计缺陷。毕竟C++、C#都支持struct,为啥Ja偏要特立行?直到有一天我突然开窍...

简单一才是王道

想象一下,如果你在厨房做菜,有十种不同形状的铲子,每个都有特定用途。听起来很专业对吧?但实际上99%的时候,一个标准铲子就能搞定所有事情。

Ja正是秉承了这种理念——<>EverythingisanOject(除了基本类型)。不用再纠结用struct还是class,不用考虑值类型和引用类型的区别,所有的复杂类型都是对象。这种简单一的设计思想,让代码更容易理解和。

一直有的一个疑惑:性能的会差吗?

没有struct到底会不会影响性能?实际上JVM的逃逸分析和标量替换优化可以智能地将对象优化成栈上分配,现在的内存访问已经非常快,另外对象池等设计模式可以很好地解决频繁创建对象的问题

就像现在的CPU和内存都这么强了,你还会在意微信多用了1M内存吗?

带来的优势:面向对象更纯粹

记得大学刚学编程时,Ja课的老师跟我们说:"编程范式就像武功招式,你可以学很多种,但要成为,得专精一门。"

Ja取消struct,某种程度上迫使我们更多地思考面向对象的设计。当你不能用struct简单封装数据时,自然会思考更多关于对象职责、封装、继承这些面向对象的核心概念。

举个栗子:

//如果有struct structPoint{ intx; inty; } //没有struct时你会更多思考面向对象的设计 classPoint{ privateintx; privateinty; pulicvoidmoveTo(intx,inty){ //可以加入边界检查等业务逻辑 this.x=x; this.y=y; } }

软件开发中有个理:<>唯一不变的就是变化。今天你用struct封装的简单数据结构,明天可能就需要添加行为和状态。

Ja的设计鼓励你一开始就用面向对象的方式思考,这样未来扩展时就不会遇到重构的烦恼。


写在最后

所以说,Ja不支持struct看似是个,实际上是一种很有远见的设计选择。有时候看似的不足,恰恰成就了一个技术的伟大。

克制不是缺陷,专注才会专业。

如果觉得文章有帮助,欢迎点赞+关注,我是旷野,探索无尽技术!

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8475.html

分享给朋友:

相关文章

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

我给你举个真实的例子。。 有一个人叫高伟东,在哈尔滨工作。在2012年做了一个APP。使用词根词缀背单词。名字叫: 词根词缀词典这个人编辑了2300余条词根,给10万多条单词建立了词根索引,整理了50多万条的单词记忆方法,包括新版本的诸多新…

2024,java开发,已经炸了吗?

炸的透透的了,坐标南京。 一月底,一个好哥们,双休朝九晚六不加班18K,被裁。 入职不到两年,算是工资和年终奖才赔了6.5W左右。 上周五新公司入职,周六开始加班。现在每周134加班到晚上八点,好像薪资还不如以前高。三月上旬,另一个好哥们,…

为什么说不懂电脑的不要碰AMD?

作为一个资深垃圾佬,说缺点前,先说优点吧AMD CPU(后续简称AU)的优点:处理器对比Intel,三级缓存更大,最明显的感知就是,网游帧数更高(5900X,7900X之类高端型号都是双CCX共享大缓存,反而不如次一点的CPU帧数更高);相…

报名的网课分期付款怎么退?

你在你分期付款的订单下面有客服电话,直接打电话描述一下你的问题,你可以告诉他你是被恶意绑定的,在不了解有退学条件这一说的情况下报的课程,可能遇到消费者诈骗了,不承认有退学金,说是霸王条款,诈骗消费者,你若分期了先把自动续费关了,别让自己个人…

如何判断 Java 工程师的基础知识是否扎实?

我来给你出几道大题,能答对70%,你就算基础扎实了。 第一部分 Java基础(27)1. 程序本质:代码是如何被执行的?CPU、操作系统、虚拟机各司何职?2. 基础语法:从CPU角度看变量、数组、类型、运算、跳转、函数等语法3. 引用类型:…

为什么这次 Mac mini 的 M4 版本价格这么低?

为什么这次 Mac mini 的 M4 版本价格这么低?

扫了一眼这里的回答,目测没几个人真买过 Macbook、Mac mini且真正当主力工作机用过。 这个初始(丐版)版本的机器实际谈不上多便宜,备受热捧有几个原因。 它这代产品整体做了重新设计,大幅缩减了尺寸,真正称得上 Mini 了。…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。