我对Valhalla项目的进度一直很感兴趣,但是Brian Goetz最近的信息“ Valhalla项目:目标 ”提高了我的兴趣。 我经常喜欢Goetz的作品,因为他结合了我最想成为技术作者的两个特征:他比他所写的内容更了解他所写的主题,而且还能够以可接近的水平介绍这些概念。向我们其他人缺乏他在这一领域知识的深度。 邮件“ Valhalla项目:目标 ”在许多方面都具有重要意义,并且很容易接近; 任何对Valh​​alla项目为何如此激动感兴趣的人都应该直接阅读该书。 尽管我建议阅读原始的,易于理解的消息 ,但我通过阅读本文中的此消息收集了一些意见。

在我的软件开发人员职业生涯中,无论我使用哪种编程语言,我通常都会发现大多数软件开发都需要一系列权衡取舍 。 遇到性能最好的代码比慢代码的可读性差的地方很常见。 实际上,这种权衡是导致过早优化的原因 。 过早优化的危险在于它是“过早的”,因为实际上并不需要通过可读性较低的代码获得的性能提升,因此人们正在有效地交换“更危险”或“更昂贵”的代码以获得不必要的性能优势。

在Java中,通常在使用对象时进行这种折衷。 对象通常更易于使用,并且是与高度使用的标准Java集合一起使用所必需的,但是对象的开销在内存和开销方面可能会非常昂贵。 Goetz在“ Valhalla项目:目标”中指出,Valhalla项目有可能成为相对罕见的情况之一,在这种情况下,可以实现“安全性,抽象性,封装性,表达性和[和]可维护性”。

Goetz提供了与对象和维护对象标识相关的成本的简要摘要。 从对在不需要对象身份的情况下维护对象身份的缺点的简要说明之后,Goetz转向了现在期望的Java值类型如何解决此问题的描述。 除了简要描述值类型的优点外,Goetz还为值类型提供了一些备用名称和短语,可能有助于更好地理解它们:

  • “像Java类一样的聚合放弃了它们的身份”
  • “代码就像一个类,就像一个整数一样工作”
  • “更快的对象”
  • “可编程原语”
  • “便宜的东西”
  • “更丰富的原语”

关于值类型,Goetz写道:“我们不必强迫用户在抽象/封装/安全性和性能之间进行选择。 我们可以同时拥有。” 我们不是每天都有蛋糕也可以吃 。

在“ Valhalla项目:目标”中,Goetz还讨论了“扩展泛型以允许对所有类型进行抽象的目标,包括基本类型,值甚至是void”。 他使用了JDK的示例,该示例需要在其API中提供多种方法来涵盖非引用类型但必须由API支持的项,因为“泛型目前仅限于仅对引用类型进行抽象。” Goetz指出,即使自动装箱允许在API中使用原语,并期望与该原语相对应的引用类型(例如将int参数自动装箱为Integer引用),这种装箱也会降低性能。 在对问题进行了适当的解释之后,Goetz总结道:“如果我们一次编写一个通用类或方法,并抽象所有可能的数据类型,而不仅仅是引用类型,那么对每个人来说都会更好。” 他补充说:“能够一次编写东西……意味着更简单,更富表现力,更常规,更可测试,更可组合的库,而在处理原语和值时不会像今天的拳击那样失去性能。”

Goetz在声明“ Valhalla:目标”时总结说:“ Valhalla可能是出于性能方面的考虑,但是将其视为增强抽象性,封装性,安全性,可表达性和可维护性的一种更好的方法-“不”放弃性能。 从这个角度来看,我真的很喜欢Valhalla项目:我们可以获得使用对象和引用类型的许多好处,同时又不放弃使用基元的性能好处。

Valhalla项目:目标为您提供了许多简洁而平易近人的思路。 阅读这篇文章增加了我对Valhalla项目的未来的兴趣,我希望我们可以在JDK中看到它。

翻译自: https://www.javacodegeeks.com/2016/10/value-project-valhalla.html

Valhalla项目的价值相关推荐

  1. valhalla 插件_Valhalla项目的价值

    valhalla 插件 我对Valhalla项目的进度一直很感兴趣,但是Brian Goetz最近的信息" Valhalla项目:目标 "提高了我的兴趣. 我经常喜欢Goetz的作 ...

  2. 案例答疑:如何评估项目的价值?

    关于:价值评估 读者@岳岳-Lydia 项目在排列优先级的时候主要也是按照预估商业价值来排序.这就有个问题,功能开发出来之后并不完美,需要小的完善,但是运营人员通过手动处理又可以解决,于是这种优化功能 ...

  3. 区块链项目的价值评估关键词:数据|筱静观察2019第3期

    从2008年到2018年的第一个十年,区块链技术的发展主要集中在虚拟货币和金融领域,接下来的第二个十年,我们可以预期区块链技术与产业结合的成果,也就是区块链的应用数量会不断增长. 本期筱静观察重点关注 ...

  4. 价值感知:如何评价企业 IT 项目的价值?

    企业IT项目价值的评价常规的思维就两个维度:效率.增值. 即是否提高了大家的工作效率?是否给企业带来了业务增值? 从企业的角度,总要追求投入产出比,IT不能仅仅是成本部门,而应该成为由IT技术和数据驱 ...

  5. GitHub 重磅开源!这个 AI 项目至少价值百万!!!

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来源 | GitHubDaily 作者 | 小G 大家好,我是小 G. 今天给大家推荐 ...

  6. Valhalla项目:LW2内联类型的初步了解

    我总结了最近在Valhalla LW2 项目 " 内联类型 "中取得的一些进展,这些进展最近在我的博客文章" Valhalla LW2进度-内联类型 "中公开了 ...

  7. 如何评估 Web3 项目的价值?

    来源:Decrypt 编译:S.L 原文:<What's a Web3 Project Really Worth? Here's How to Tell.> Web3 初创公司是一种新型公 ...

  8. python视频网站项目_价值2400元的python全栈开发系列Flask Python Web 网站编程视频

    2 e/ b4 F1 c' H$ D! X 价值2400元的python全栈开发系列Flask Python Web 网站编程视频-优品课堂' z3 _1 Y7 ]6 j4 z # p# r# g* ...

  9. Blockathon(北京)分享:风口之下,如何衡量区块链创业项目的价值

    Olympus Labs创始人Kai Chen 5月25日,Blockathon区块松(北京站)活动在中关村e世界联合创业办公社正式启动,从400多位报名者中审核筛选的100名来自新加坡.澳大利亚.韩 ...

最新文章

  1. 程序员春运抢票的正确姿势!
  2. 吾八哥学Python(四):了解Python基础语法(下)
  3. [20170419]bbed探究数据块.txt
  4. 神策数据入选 Facebook 全球合作计划,助力出海客户拥抱全球化广告生态
  5. TypeScript 里的 module 解析过程 - Module Resolution
  6. python取文本中间_Python读取两个字符串之间的特定文本行
  7. Python自动化之列表
  8. 自定义filter中配置不被过滤的资源
  9. XTU 1252 Defense Tower
  10. 使用Python判断文件是否为PE文件
  11. 50道编程小题目之【企业利润提成】
  12. 把一个数插入c语言,[求助] 把一个数插入一个已经从小到大排列好的数列中
  13. 公有云和私有云,你了解吗?
  14. 【一句日历】2019年8月
  15. java代码随机取名字
  16. 2021年烷基化工艺考试试卷及烷基化工艺模拟考试题
  17. 戴文渊 李一男 李三琦
  18. 用WinSCP登录路由器并传入文件及改文件权限
  19. javascript蜘蛛纸牌
  20. goahead用jst进行简单互动

热门文章

  1. 彻底理解正向代理和反向代理
  2. mysql查询优化explain命令详解
  3. ps中对齐,历史记录,图层
  4. java实现遍历树形菜单方法——OpenSessionView实现
  5. 深入理解python的元组本身不可变性
  6. 2016蓝桥杯省赛---java---C---8(冰雹数)
  7. Android软键盘弹出时,覆盖布局,不是把布局顶上去的解决方法
  8. Android之Bitmap高效缓存以及android缓存策略
  9. ArrayList整理
  10. 为什么光标停在表格中间_word里面为什么打出来的数字中间为啥差一个光标的距离 - 卡饭网...