java第三阶段源代码

那些已经阅读了有效Java 第三版的人可能知道与该书相关的源代码可以在GitHub上获得 。 jbloch / effective-java-3e-source-code项目拥有1700多个星星,截至撰写本文时,它已被分叉了近800次。 在有效Java的第三版中, Java的版本主要是JDK 8,涵盖了JDK 9(有关此第三版所涵盖内容的详细信息,请参阅我的早期文章 )。

有效Java第三版发布以来,JDK已添加了许多功能,并且以更快的6个月节奏发布了许多新版本。 鉴于此,我特别感兴趣的是在琥珀色专家邮件列表中看到RémiForax已将jbloch / effective-java-3e-source-code分叉到GitHub项目forax / effective-java-3e-source-code “已经获得了有效Java(第3版)的源,并将它们更改为使用var,切换表达式,记录和具有类型测试模式的instanceof。”

我喜欢从“ 有效Java” (第三版)中刷新示例以使用较新功能的想法:

  • 开发人员可以看到如何使用最近发布的功能来应用有效的Java实践。
  • 开发人员可以查看JDK 8/9版本与较新版本之间的差异,以了解新构造如何替换较旧的构造,从而更好地理解较新的构造。
  • 在决定在特定情况下使用新结构的特定更改是否真正有助于代码可读性时,查看某些更改很有用。

分叉的forax / effective-java-3e-source-code ( README.md )的主页上指出:“源代码已更新为使用自Java 9(第三版使用的版本)以来可用的新结构。” 然后,该页面提供了关于应用于源代码的新构造类型的项目符号,并提供了指向每个新构造相关的JDK增强建议(JEP)的链接。

撰写本文时, 提交275eef87e4661f7f1edc41f4730cecf7a1096a97是主要的关注事项。 它涵盖对113个文件的更改。 我将在此处指出一些具体的更改,以说明所应用的更改的类型(其中一些是应用甚至在JDK 9之前可用的首选构造):

  • NutritionFacts.java (第2章,第2项) 从类更改为记录 。
  • PickTwo.java (第5章,项目32)的更改演示了开关表达式 。
  • CaseInsenstiveString.java (第3章,第10项)的更改演示了类型测试模式对instanceof的应用。
  • WordList.java (第3章,第14项) 改为申请VAR为趁着变量声明局部类型推理 。 这些更改很多,但这是我喜欢的更改。 我不相信其他地方的某些更改(例如将int更改为var )是否有帮助。 InstrumentedSet的更改 (第4章第18项)更具吸引力。
  • 更改为RecursiveTypeBound.java (第5章,项目31)演示了在for循环中使用var
  • Copy.copy方法(第2章,第9项)已更改为接受Path实例而不是String实例,并更改为分别使用Files.newInputStream和Files.newOutputStream代替new FileInputStreamnew FileOutputStream

结论

能够查看与有效Java第三版相关的原始源代码的更改,以适应新的语言结构,这对于了解新结构及其与旧结构的关系或如何替换以及确定是否存在差异非常有用。在不同情况下是可取的。

翻译自: https://www.javacodegeeks.com/2020/02/source-code-for-effective-java-third-edition-updated-to-use-newer-features.html

java第三阶段源代码

java第三阶段源代码_有效Java第三版的源代码已更新为使用较新的功能相关推荐

  1. 有效Java第三版的源代码已更新为使用较新的功能

    那些已经阅读了有效Java 第三版的人可能知道与该书相关的源代码可以在GitHub上获得 . jbloch / efficiency-java-3e-source-code项目拥有1700多个星星,截 ...

  2. 谷粒商城三阶段课件_高二地理必修三11:(课件)第2章 区域生态环境建设第2节 森林的开发和保护——以亚马孙热带雨林为例...

    如果您需要教学和学习资源,请点下面链接, 如需要,请加微信号:13624387634. 高中地理资源: 资源分享15:全国历年高考地理真题及分类解析(共350套) 资源分享17:高中地理人教版全9册教 ...

  3. 谷粒商城三阶段课件_高二地理必修三2:(课件+教学案)第一章 地理环境与区域发展 第一节地理环境对区域发展的影响...

    教学案WORD版与课件内容相同,略. 如果您需要教学和学习资源,请点下面链接, 如需要,请加微信号:13624387634. 高中地理资源: 资源分享15:全国历年高考地理真题及分类解析(共350套) ...

  4. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  5. java 高并发第三阶段实战_Java 高并发第三阶段实战---Java并发包深入解析与使用详解...

    第三阶段的课程主要围绕着Java并发包的使用,展开详细的介绍,主要内容有1.原子包源码剖析,2.并发包工具类详细介绍,3.线程服务以及Future和callable等详细介绍,4.高并发容器和阻塞容器 ...

  6. java web源代码_检测Java Web应用程序而无需修改其源代码

    java web源代码 与其他系统进行交互时,大多数Java Web应用程序都使用标准Java接口. 诸如Web页面或REST服务器之类的基于HTTP的服务是使用接口javax.servlet.Ser ...

  7. java 反编译class文件_用Java实现JVM第三章《解析class文件》

    解析class文件 案例介绍 本案例主要介绍通过java代码从class文件中解析:class文件.常量池.属性表: 作为类(或者接口)信息的载体,每个class文件都完整地定义了一个类.为了使jav ...

  8. java判断所有域名后缀_使用Java的IO操作,提取全世界所有的三位域名后缀

    一.  前言 最近又想注册域名,便从TLD List 中下载了已经收录的全世界所有的域名后缀,然后使用Java的IO相关操作,将所有的三位域名后缀提取了出来.先给出下载文件: 所有域名后缀 二.  代 ...

  9. java jsp取静态常量_获取java静态

    Android NDK开发系列教程4:对类变量进行操作 终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 通常我们 ...

最新文章

  1. MySQL内存预估_mysql时该如何估算内存的消耗,公式如何计算?
  2. 马宁的Windows Phone 7开发教程(3)——XNA下使用MessageBox和软键盘
  3. 利用 Linux tap/tun 虚拟设备写一个 ICMP echo 程序
  4. SVN中trunk,branches,tags用法详解
  5. [Xcode 实际操作]八、网络与多线程-(17)使用网址会话对象URLSession向远程服务器上传图片...
  6. 过滤器做权限校验以及遇到的坑
  7. 24. (附加)二叉搜索树的前续遍历序列(c++版本)
  8. Jenkins问题:SVN插件未更新到最新代码
  9. 互联网黑产:那些职业羊毛党到底如何月赚几十万?
  10. 【全志T113-S3_100ask】9-音频输入与输出(amixer、aplay、arecord)
  11. 移动端证件识别,支持离线识别
  12. 微软苏州研发人员将达4500人!第二幢楼今天开建!
  13. android 标准时间格式,android开发中关于含有中文字段的格林尼治标准时间的时间格式转换...
  14. PostgreSQL DBA(63) - Extension(pg_stat_statements)
  15. 一种 Python 获取时间序列数据集的方式
  16. 微信手机浏览器多图片即时预览
  17. Skype for Business Web 应用
  18. 笔记2 IKAnalyzer扩展词库
  19. java的 反射机制
  20. java ftp 被动模式_ftp 主动模式与被动模式

热门文章

  1. Cell Phone Network
  2. [AtCoder Beginner Contest 216] 题解
  3. 洛谷P5664:Emiya 家今天的饭(容斥、dp)
  4. P5825-排列计数【EGF,NTT】
  5. P5666-[CSP-S2019]树的重心【树状数组】
  6. P4457-[BJOI2018]治疗之雨【期望dp,高斯消元】
  7. 【2018.4.7】模拟赛之五-ssl2386 序列【dp】
  8. 【LCT】历史(P4338)
  9. Java面试,如何在短时间内做突击
  10. 汇编语言(二十五)之成绩分段统计