Last Updated:

Oracle Java杂志中的 10 篇好读物

银狐

Java Magazine在其长达十年的历史中经历了几次转变。随着每次过渡,一些较早的材料变得更难找到。

作为我们 10 周年回顾的一部分,编辑们花了一些时间锁定在保险库中寻找仍然相关和重要的文章,但在杂志网站上还没有。他们现在!以下是我们在档案中找到的 10 篇最佳文章。

JVM 如何定位、加载和运行库作者:Oleg Šelajev

类加载仍然是 JVM 最不被理解的操作之一。许多文章都讨论了代码执行或垃圾回收,但是这两个操作都首先需要解析和加载一个类。这个非常清晰的过程概述使您了解为准备执行类所做的工作。在撰写本文时,Java 8 是当前版本。虽然本文中的所有内容仍然适用,但由于模块的出现,今天该过程出现了额外的皱纹。但是,如果您的代码不使用模块,则此处描述的过程适用于您的代码。

使用 WebSockets 构建应用程序,第 1 部分,以及使用 WebSockets双向推送数据,第 2 部分,作者 Danny Coward

WebSockets 是一种在服务器和客户端之间进行通信的宝贵方式,它们可以在 Java EE 或 Jakarta EE 中相当容易地进行编程。这个由两部分组成的教程展示了如何设置聊天应用程序的两端以及如何异步来回推送数据。如果您在当前项目中不使用 WebSockets,这两篇文章可能会很好地说服您使用它们,从而解决许多原本难以解决的通信问题。

Fabian Lange使用 Byte Buddy 生成运行时代码

有多种解决方案可用于处理 Java 字节码。ASM 可能是最著名的。虽然它被许多工具所使用,但它缺乏 Byte Buddy 的用户友好性,它不需要您成为低级别的行家就能够动态创建 Java 类或修改现有类。这个带有几个示例的概述打开了在您的程序中做神奇事情的大门。(有关 ASM 的更多信息,请参阅 Ben Evans 的“使用 ASM 处理真实世界的字节码。”)

由 Mert Çalişkan 编写的jsoup HTML 解析库

HTML 是出了名的难以解析,部分原因是 Web 浏览器对格式错误的页面非常宽容。因此,用于解析、验证和操作 HTML 文件的可靠、易于使用的库是对 Java 工具箱的宝贵补充。jsoup 通过相对直观的 API 提供了这样的功能。jsoup 甚至允许您通过仅允许您在允许列表中指定的元素来清理 HTML 文件。基本上,对于您需要处理 HTML 文件的任何事情,jsoup 都提供了一个易于使用的 API。

HotSpot JIT 编译器中的逃逸分析 作者:Chris Newland 和 Ben Evans

JVM 被普遍认为是一种出色的技术,其性能与本机二进制文件相提并论,并且能够运行从最早的 Java 版本到现在的代码。它的部分速度来自于从不太可能的来源挤压性能的极端优化。其中之一是逃逸分析,它检查变量生命周期发生的范围。当分析显示范围有明确的限制时,JVM 可以实现各种微优化:在堆栈而不是堆上创建对象,不为某些多线程操作加锁,等等。本文讨论 JVM 如何执行逃逸分析以及您的代码如何从中受益。

龙目岛项目: Josh Juneau 的简洁、简洁的代码

即使是最热心的 Java 支持者也承认它是一种冗长的语言。虽然这种冗长有助于使 Java 程序具有可读性,但在编写代码时可能会令人沮丧。Project Lombok 是众多建议的解决方案中最广泛采用的一种,用于减少部分冗长。它使用注释来生成代码(例如 getter 和 setter)并向程序添加安全性(空安全性)。本文对 Lombok 进行了出色的概述,着眼于其最有用的功能。

为了更快的 Java 集合,让它们变得懒惰by Mike Duigou

编程中的懒惰意味着推迟操作,直到软件可以明确确定必须执行该操作。这是与渴望相反的概念,在这种渴望中,操作是在尽可能早的时刻执行的。在本文中,Java Collections 框架的前首席开发人员描述了向集合添加惰性如何显着减少某些应用程序中的内存使用量。此外,他还解释了如何考虑在您自己的程序中加入懒惰以获得最广泛的利益。

注释: Cedric Beust的内部观察

注释在 Java 中得到了越来越广泛的使用,但人们仍然知之甚少。在本文中,从事 JDK 注释技术工作的 Cedric Beust 解释了它们独特的语法并展示了如何编写自己的注释。然后,他深入研究了 Java 注释处理器,并展示了 JDK 将如何处理您的注释,并最终在运行时由 JVM 处理。

区块链: Conor Svensson在 Java 中使用加密货币

如果您渴望使用区块链和以太币等加密货币,本文将为您提供所有概念基础知识以及全面的编程介绍。它探索了 web3j,一个用于访问以太坊区块链的关键 Java 库,并演示了如何执行简单的交易、创建合约,甚至如何发行您自己的虚拟代币——所有这些都使用 Java。

开演时间!Java 7 来了: Michael Meloan对 Mark Reinhold的采访

Java SE 7 版本解决了语言和平台的重要领域,反映了编程社区的趋势、硬件架构的发展以及对 Java 技术成功的持续承诺。Java 平台的首席架构师 Mark Reinhold 介绍了其中的亮点,包括 Project Coin、invokedynamic字节码指令、New I/O Part 2 和 fork/join 框架。采访还谈到了未来的版本,包括 Java SE 8 的 Project Lambda。

结论

这 10 篇文章非常关注 JDK 对您的代码的作用以及如何充分利用其功能。与所有运行时环境一样,JVM 受益于程序员对其操作的深入了解,既可以提高性能,也可以编写利用很少使用功能的代码。从这些文章中,您会发现许多可以放入工具箱的新工具,当然还有考虑代码的新方法。

下载本文的 PDF