2020年,Java 迎来了25周年,尽管它历史悠久,但仍然强大而活跃。根据 TIOBE 指数,它拥有七百万到一千万的开发者,是当今使用最广泛的三种语言之一。
为了庆祝Java迎来四分之一世纪,Daniel Oh 在解释如何在Mac上安装Java (因为它的未来取决于更多人使用它)之前,回顾了Java的历史。为了延续庆祝活动,我们整理了2020年我们从Java中学到的五件最重要的事。无论你是刚开始学习这门语言,还是经验丰富并试图提高你的Java开发技能,这些都是你应该知道的事情。
选择合适的 IDE
如果你是Java新手,并好奇想了解更多关于它的可能性和生态系统,BlueJ 是一个不错的起点。Seth Kenlon 的 使用 BlueJ 轻松学习 Java 探索了这个为学习 Java(或一般编程)的人们设计的开源集成开发环境 (IDE)。正如 Seth 所写,“BlueJ 的目标是让 Java 易于学习,无论你是一位经验丰富的程序员,还是仍在努力编写你的第一个 ‘hello world’ 程序。”
BlueJ 拥有一个可视化和直观的环境,帮助新的开发者理解高级概念,如变量作用域、循环和条件语句。它的目的不是成为像 Eclipse 和 NetBeans 这样的完整 IDE,而是作为一个学习工具,加速对编程语言及其概念的理解。
如果你想使用一款优秀的开源 IDE 来编写 Java 代码,并更进一步,我强烈建议阅读 Daniel Oh 的 5 款 Java 开源 IDE 工具,以帮助你决定哪款 IDE 最适合你。
使用外部库
Java 最大的优势之一是其可扩展性,这使得 Java 社区能够重用代码,创建许多组件和插件,这些组件和插件以库的形式呈现。在 在 Java 中使用外部库 中,Chris Hermansen 解释了什么是外部库以及如何在实际应用中使用它。
Chris 分享了使用外部库的主要好处,并提供了连接到 PostgreSQL 数据库的完整示例代码。他说
“…… 有许多有趣的 Java 库是由那些发现核心库中存在缺陷的人创建的。例如,Apache Commons ‘是一个专注于可重用 Java 组件各个方面的 Apache 项目’,并提供大约 43 个开源库的集合(截至本文撰写时),涵盖了 Java 核心之外(例如几何或统计)或增强或取代 Java 核心功能(例如数学或数字)的一系列功能。”
创建和使用不同的外部库在开源项目中非常有用,因为它使你能够在多个应用程序之间共享相同的解决方案和代码库。此外,使用其设计模式可以帮助你为你的应用程序创建可扩展和模块化的库。
探索 JDK 替代方案
在 是什么使 Java 开源? 中,Daniel Oh 讨论了 Oracle Java 开发工具包 (JDK) 的开源替代方案。最受欢迎的是用于桌面和服务器端目的的 OpenJDK。
也涌现出针对 Java 应用程序的不同运行时环境,旨在提高 Java 代码与更多设备的兼容性,包括移动设备和低端嵌入式设备(例如,Raspberry Pi、Beagle Board 等)。在 使用 TotalCross 进行开源跨平台开发 中,我探索了 TotalCross,它是保证任何设备低占用空间和高性能的开源选项之一。
TotalCross VM 与常规 Java 虚拟机 (JVM) 实现不同,因为它使用基于寄存器的架构,这类似于大多数硬件使用的架构,其中操作数存储在基于 CPU 寄存器的结构中。这种架构比基于堆栈的架构更复杂,因为指令必须直接寻址操作数,而不是仅仅从堆栈中弹出最后一个操作数,但它可以保证更高的操作执行性能。
你该使用哪个?我写道
“TotalCross VM 和 Java VM 有不同的方法。不仅它们的字节码和架构不同;它们的用途也不同。虽然 TotalCross 针对边缘应用,但 Java 最好的用途是在 Web 应用程序、服务器端应用程序和中间件等方面。要决定是使用‘纯’Java 应用程序还是 TotalCross 应用程序,请查看你的应用程序和目标设备的需求。”
停止使用循环;尝试 Java Streams
如果你想提高你的编程技能,并减少应用程序中的代码和复杂性,请查看这两个 Java API:Streams API 和函数式编程结构。
正如 Marty Kalin 在 Java 中的数据流和函数式编程 中写道,“Stream API 是一种简洁且高级的方式来迭代数据序列中的元素。java.util.stream 和 java.util.function 包包含了 stream API 和相关函数式编程结构的新库。” 这是一篇关于使用这两个 API 简化代码的详细文章。
Chris Hermansen 写了两篇文章,关于使用 Streams API 来利用 Streams 和 Collectors 减少代码中的循环。在 不喜欢循环?试试 Java Streams 和 为什么使用 Java Streams 而不是循环 中,他将这些 API 应用于复杂问题,以阐明该方法的应用和优势。
使用 Streams API 和函数式编程结构可以提高源代码的可维护性,并通过自动多线程处理和 JDK 提供的其他功能来提高算法的整体性能。
考虑使用 Kotlin 而不是 Java
众所周知,你可以在 JVM 之上运行不同的编程语言,包括 Groovy、Scala 和 Kotlin——但选择其中一种语言而不是 Java 的真正好处是什么呢?
Stephon Brown 在 我为什么从 Java 切换到 Kotlin 中对 Kotlin 语言进行了很好的概述。他介绍了 Kotlin 的基础知识,如变量和数组,并为如何决定为你的应用程序使用哪种语言提供了清晰的思路。
他说,“Kotlin 是一种先进但直观的 [面向对象编程] 语言,它简化和精简了移动设备、服务器端、Web 和数据科学应用程序的 Java 开发。我发现它的语法和配置比 Java 简单得多。”
此外,学习使用一种新的编程语言进行编码会为你的开发技能增加很多价值,因为它帮助你使用每种技术的最佳方面来解决问题。正如 Stephon 所写,“Kotlin 的简洁性和 Java 互操作性意味着你花费时间学习一些无用的东西的风险很小。在迈出 Kotlin 的第一步之后,你可能再也不会以同样的方式看待你的 Java 代码或 JVM 了。”
其他 Java 新闻
2020 年为 Java 社区提供了许多新的更新、功能和可能性。这五个主题并未涵盖所有发生的伟大事件,例如 JDK 14 和 15 的发布。我们不应期望 2021 年会逊色,JDK 16 已经发布。
对于新手来说,这意味着 Java 仍然是最好的学习编程语言之一。它已完全更新,具有软件开发可用的最现代的范例和功能。对于 Java 专家来说,这些进步意味着现在有更多的可能性在开源项目中发挥他们的技能。
现在轮到你了:2020 年你从 Java 中学到的最好的东西是什么?
1 条评论