Java assert Keyword2025年4月8日 | 阅读3分钟 Java 中的 assert 关键字用于调试目的。它主要用于通过在表达式求值为 false 时抛出 AssertionError 来测试代码中的假设。断言通常在开发和测试期间使用,但在运行时默认情况下是禁用的。 要启用断言,您需要在运行程序时使用 -ea(启用断言)JVM 选项。 语法单个表达式 如果条件求值为 false,则会抛出 AssertionError。 带错误消息的表达式 如果条件为 false,则会抛出带有消息的 AssertionError。 程序 1:基本断言示例编译并运行输出 Number is: 5 启用断言后 输出 Exception in thread "main" java.lang.AssertionError: Number is not greater than 10 解释 该程序演示了在 Java 中使用 assert 关键字在运行时验证假设;程序将 num 初始化为 5,并使用断言 assert num > 10 : "Number is not greater than 10",该断言检查 num 是否大于 10;由于条件为 false,当使用断言启用 (-ea) 执行时,将抛出带有消息 "Number is not greater than 10" 的 AssertionError,否则,将忽略断言,程序将打印 "Number is: 5"。 程序 2:在方法中使用断言示例编译并运行输出 16 9 启用断言后 输出 16 Exception in thread "main" java.lang.AssertionError: Number should be non-negative at AssertionExample2.square(AssertionExample2.java:3) at AssertionExample2.main(AssertionExample2.java:7) 解释 该程序演示了在 Java 中使用 assert 关键字验证方法输入,确保给定数字为非负数,然后再计算其平方。当禁用断言时(默认模式),程序正常执行并打印 16 和 9,即使 square(-3) 违反了断言条件;然而,当使用 -ea 启用断言时,第二次方法调用失败,抛出带有消息 "Number should be non-negative" 的 AssertionError,终止执行。 程序 3:循环中的断言示例编译并运行输出 Even number: 1 Even number: 2 Even number: 3 Even number: 4 Even number: 5 启用断言后 输出 Exception in thread "main" java.lang.AssertionError: Odd number encountered: 1 解释 该程序演示了在 Java 中使用 assert 关键字在执行期间验证条件;在此程序中,断言检查循环中的每个数字是否为偶数 (i % 2 == 0),如果条件失败(即 i 为奇数),则会抛出带有消息 "Odd number encountered: " 的 AssertionError;当不启用断言 (-ea 未使用) 运行时,将忽略断言,并打印所有数字(1 到 5);但是,当启用断言时(java -ea AssertionExample3),程序将在 i = 1 处以 AssertionError 终止。 要记住的重要事项
下一个主题Java 中的计数器变量 |
在多线程编程中,会创建多个线程,并且在执行的某些点上线程必须同步。Java 的 CyclicBarrier 是固定数量线程的一个完美解决方案,这些线程可以在某个特定点汇合……
5 分钟阅读
? 在本节中,我们将学习将字节转换为十六进制的各种方法。将字节转换为十六进制以下是将字节转换为十六进制的方法:使用 Integer.toHexString() 方法使用 String.format() 方法使用字节操作使用 Integer.toHexString() 方法它是 java.lang.Integer 类的内置函数。语法:public static String toHexString(int...
阅读 3 分钟
高效计算矩阵主对角线和副对角线之和,需要利用索引属性来最大限度地减少迭代次数。与使用嵌套循环遍历整个矩阵不同,单循环可以直接访问对角线元素,从而提高性能并简化代码。这种方法...
阅读 6 分钟
在Java中,异常是处理程序中错误和意外事件的基础部分。然而,标准的Java异常可能不足以处理程序中可能发生的所有不同类型的错误。这就是自定义异常的用武之地...
阅读 4 分钟
Java 作为一种多功能编程语言,为开发人员提供了各种工具和结构来高效地管理和处理数据。用于处理数据的两个最广泛使用的机制是集合(Collections)和流(Streams)。它们各自服务于不同的目的,并具有各自的优点和...
阅读 4 分钟
在 Java 中,按值对 HashMap 进行排序很复杂,因为没有直接的方法可用。如果我们想按值对 HashMap 进行排序,我们应该创建一个 Comparator。它根据值比较两个元素。之后,获取 Map 中的元素集……
阅读 2 分钟
java.text.CollationElementIterator 类有一个 tertiaryOrder() 方法。CollationElementIterator 类的 tertiaryOrder() 方法提供 CollationElementIterator 对象每个排序元素的第三级组件。语法:public static final short tertiaryOrder(int order) 参数:该方法需要发现排序元素的第三级组件,该排序元素是...
阅读 3 分钟
在 Java 18 中,引入了 snippet 标签来解决 code 标签的缺点。Java 18 以新功能的形式在 Java 的 API 文档中添加了代码片段。JavaDoc 的标准 Doclet 在 Java 中包含 @snippet 标签,并且它...
阅读 3 分钟
这个谜题包含其他 8 个谜题的答案。玩家会得到一个 3x3 的棋盘,上面有 8 个棋子(每个棋子都标有 1 到 8 的数字)以及一个空格。要使棋子上的数字匹配...
阅读 13 分钟
在 Java 中,分隔符是分隔代码语句或表达式不同部分的字符。它们在定义语言语法方面起着重要作用,有助于以可读和可理解的方式组织和构造代码。Java 有几种分隔符,每种都有其……
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India