Java 断言调用的开销

Overhead of Java assert call

验证变量值的 Java assert 调用怎么可能是空操作?不需要操作来比较预期值和实际值吗?

这不是空操作。系统 属性 确定断言是启用还是禁用。 assert 语句被编译成一个 if 语句,该语句检查是否启用了断言,然后执行实际的断言检查。

查看有关断言的 oracle doc,其中介绍了如何在关键字 (1.3) 之前完成断言以及关键字在 1.4+ 中的工作方式。