Java 在 2023 年仍然流行的 25 个原因( 三 )

javac Example.javanative-image Example原生镜像构建器会将 Example 类提前编译成一个独立的可执行文件 example,并保存在当前工作目录中 。您接下来可以直接运行这个可执行文件:
./example原生可执行文件体积?。?启动迅速 , 同时显著减少了 CPU 和内存的需求 , 非常适合于容器和云部署环境,其中成本优化至关重要 。
随着 JDK 21、项目 Loom 和 ZGC 的最新进展,我对这些技术的发展充满期待 。GraalVM 的原生镜像现在也支持虚拟线程 。我们可以创建使用 Spring Boot(通过 Spring Boot 3.2)和 Java 21 虚拟线程的 GraalVM 原生镜像 。
8. 开源库和框架的重要性开源库和框架是 Java 在我的工具集中占据重要位置的核心原因之一 。

Java 在 2023 年仍然流行的 25 个原因

文章插图
图片来源:google
这些库和框架为我提供了一系列易于集成的构建模块 , 省去了自行为常见功能重新设计和实现的工作 。它们就像一个随时可以取用的代码商店,其中存放着大量经过严格测试和精心编写的代码 。
这些库的多样性意味着我不再受限于单一的解决方案 。我总能找到最适合我的需求的库 。开源性质还促进了透明度和责任感,意味着我可以深入探究源代码,了解其背后的工作机制 , 甚至可以做出自己的贡献 。
Java 的开源库涵盖广泛 , 包括用于 JSON 解析的库(如 Jackson 和 Gson)、日志库(如 Log4j、SLF4j 和 LogBack)、单元测试库(如 JUnit、Mockito 和 PowerMock),还有数据库连接库、消息传递库等 。
Java 的广泛框架生态系统也是其成功的部分原因 。Spring 和 Spring Boot 是我偏爱的组合之一 。此外 , 我还使用过 Jakarta Faces、Struts、Hibernate 和 Quarkus 等其他框架 。
9. 多线程的支持Java 对多线程的支持允许我设计能够同时处理多任务的应用程序,涵盖数据处理、用户交互管理和后台计算等方面 。Java 通过实现 Runnable 接口或继承 Thread 类来实现多线程功能 。
Java 的 java.util.concurrent 包提供了一系列先进的工具 , 进一步便利了并发应用程序的开发,包括 ExecutorService、ScheduledExecutorService、Future、CyclicBarrier 等 。
public class MyRunnable implements Runnable {public void run() {// 在新线程中要执行的代码}}MyRunnable myRunnable = new MyRunnable();Thread myThread = new Thread(myRunnable);myThread.start();现代计算标准中,多核处理器已成为常态,即一个芯片上集成了多个处理器核心 。Java 对多线程的支持使得我们能够充分利用多核 CPU 的能力,这意味着我们可以开发出更高性能的 Java 应用程序,适用于游戏、视频编辑、科学模拟等资源密集型活动 。
10. Java 面向对象的特性你可能会想 , Java 并非唯一的面向对象编程语言,它与 Python、C++ 等语言相比有何特殊之处?区别在于,Java 从一开始就是基于面向对象原则设计的,而不是像其他语言那样后来才加入面向对象编程(OOP)的元素或支持 。
Java 对面向对象编程的四大原则——抽象、继承、多态和封装——的坚持,使它成为构建复杂、可扩展和易于维护的软件系统的理想选择 。我认为,Java 对 OOP 范式的深入支持带来了许多优势,如有助于构建模块化、灵活、易读、易维护和可扩展的应用程序 。
11. 内存管理和垃圾回收
Java 在 2023 年仍然流行的 25 个原因

文章插图
图片来源:Digital Ocean
让我们以一个类比来看待这个问题:就像许多人都不喜欢倒垃圾一样,我也不喜欢手动管理内存 。在需要手动内存管理的情况下,开发者需要负责分配和释放内存,这就像决定何时倒垃圾一样 。如果忘记释放内存 , 就会导致内存泄漏和性能问题 。
而 Java 的自动内存管理则像是一个可靠的垃圾回收服务 。在 Java 中,垃圾收集器自动识别并处理不再需要的内存,从繁琐的内存管理中释放了开发者 。
在使用 C++ 的过程中 , 我体验到了内存管理的两面性 。C++ 提供了对内存管理的细致控制,但这也给开发者带来了避免内存泄漏的巨大责任 。
相比之下,Java 让开发者不必担心底层系统的细节,也无需手动进行垃圾回收、处理底层操作系统的问题或追踪内存分配与释放 。垃圾收集器会自动识别并回收不再使用的内存,减少了内存泄漏的风险 。
作为开发者 , 这意味着我可以将更多精力集中在业务逻辑和应用程序的高层设计上 。如果你是团队中的一员,Java 的自动内存管理还可以提升开发周期的效率和整体生产力 。


推荐阅读