0%

Apache Groovy 6.0已经正式发布。这不是一次修修补补的小迭代,而是Groovy面向JDK 17+、虚拟线程(Virtual Threads)、云原生运行时与当代工程工具链的一次系统性升级。

作为运行在JVM上的动态/静态混合语言,Groovy长期承担三重职责:Java生态中高生产率的胶水与脚本语言,企业级领域特定语言(DSL)、构建与测试的重要实现手段,以及把复杂业务规则写成可读代码的建模工具。Groovy 6在这三方面同步推进:并发可以用接近同步代码的顺序风格表达;标准库更接近开箱即用(batteries-included);方法声明开始具备可被编译器核实的规格(specification)意义;动态分发则在语义保持不变的前提下,获得更稳定的热点行为与更低的分配开销。

最低运行环境提升至JDK 17,并已在JDK 17至27上完成验证。运行基线与当代JVM对齐之后,语言、类库与运行时得以按虚拟线程、模块系统与原生镜像等能力重新设计。

阅读全文 »

近日来,GitHub上出现了一些幽灵通知(Ghost Notifications),这些幽灵通知通常来自已经被删除或转移的仓库,导致用户无法通过常规方式清除,进而带来了不少困扰。由于GitHub官方未能及时处理,忍耐一段时间后,终于忍无可忍。经查阅GitHub上的资料,并做了诸多尝试后,发现以下步骤对Chrome用户行之有效:

阅读全文 »

一、 引言:追求卓越架构

软件架构在任何重要软件项目的成功中都扮演着至关重要的角色。它不仅仅是图表和文档的堆砌,更是决定系统可维护性、可扩展性、可测试性以及整体健康状况的基石。在软件开发的征途中,复杂性是与生俱来的挑战。精心设计的架构原则如同罗盘,指引团队穿越迷雾,构建出稳健可靠的系统。

阅读全文 »

概述

Java虚拟机(JVM)是Java生态系统的核心,它不仅提供了跨平台的兼容性,更是Java高性能运行的关键。JVM最初通过解释器执行字节码,这种方式启动快,但对于计算密集型或频繁执行的代码来说,性能并不理想。为了解决这个问题,JVM引入了即时编译(Just-In-Time, JIT)技术。

阅读全文 »

引言:架构师的思维模式——从“最好”到“最合适”

在系统架构设计的世界里,一个普遍存在却极具误导性的观念是追寻所谓的“最好”架构。然而,经验丰富的架构师都深知一个基本事实:对于任何系统而言,没有最好的架构,只有更合适的架构。系统架构设计并非一项寻找唯一正确答案的纯粹技术活动,它更像一门艺术与科学的结合体,要求我们在性能、成本、可维护性、安全性、上线时间等一系列相互冲突的约束和目标之间,做出审慎的权衡与取舍。

阅读全文 »

概述

WPS是我国民族软件的骄傲,而我自己也是其忠实粉丝,尤其钟爱WPS PDF,可以完全替代Adobe Reader。最近将Ubuntu系统升级至Ubuntu 24.04,发现WPS PDF(2019)无法打开pdf文件,作为一名书虫的我,多少有些不适应。经过一番研究,发现缺失所需的libtiff.so.5,该问题可以简单地通过以下步骤解决,与君分享。

阅读全文 »

概述

在过去的几年中,Java通过不断的版本更新,持续引入了许多新的特性和改进,令Java语言屹立在编程语言之林。本文将介绍从Java 7到Java 23的主要新特性及改进,回顾Java语言演进的心路历程。

阅读全文 »

概述

Groovy语言在简洁性、灵活性和功能特性等方面具备独特优势,使其在2024年依然是开发者值得掌握的编程语言。

阅读全文 »

概述

在计算机网络中,TCP是实现可靠数据传输的重要协议。TCP通过三次握手(Three-Way Handshake)来建立连接,通过四次挥手(Four-Way Termination)来终止连接,确保数据传输的可靠性和连接管理的完整性。三次握手确保双方在通信前建立同步连接,防止重复数据包的干扰,确保序列号的同步。四次挥手则确保双方在连接终止时都能完全释放资源,防止数据丢失,并确保网络中不存在旧的数据包,从而避免新的连接受到干扰。理解这些过程对于排查网络问题和设计可靠的网络应用至关重要。

阅读全文 »