当前位置: 首页 > 面试题库 >

在Java中声明关键字

董法
2023-03-14
问题内容

您使用assert关键字还是引发一些验证运行时异常?它给您带来什么好处,或者为什么您认为不值得使用呢?


问题答案:

如果条件为假,则声明将抛出运行时错误(AssertionError)。断言为您提供了一种简化的方式来记录,检查和强制执行代码的正确性标准。好处是用于定义和操纵这些正确性条件的语言级挂钩。如果您希望启用或禁用它们(存在一些关于是否是个好主意的争论),则可以从JVM命令行中启用。下面的一些评论者指出,除非在调试模式下运行,否则默认情况下断言是禁用的。我的做法是始终在包装器脚本中添加“
-ea”(启用断言)。即使在性能敏感的代码中,对我来说,折衷还是权衡了我从断言中获得的安全性/正确性信心。
甲骨文和API的AssertionError描述

请注意,可能在您控制范围之外的预期或意外故障(异常)与断言故障之间的区别-断言故障记录了程序员的假设,并指示程序错误,而不是意外的外部情况或预期的异常情况。
如果发生断言失败,则说明程序员是错误地理解或错误地表示了程序 ,而不是其他错误或失败源。

在实践中,我用它来记录我做出的明显或非显而易见的假设以及在生成(尤其是私有/内部)代码时要强制执行的不变量,这使我自己和其他人清楚知道为什么要做出这些假设,它们在哪里以及是否经过验证。比起评论要好得多。这是按合同设计的(小)步骤。



 类似资料:
  • 问题内容: 以下两个声明之间有什么区别? 和 是在堆栈上还是在堆上声明? 问题答案: 一个明显的区别是,一个全为零,另一个包含[1..5]。 但这是唯一的区别。两者都是5元素整数数组,都以相同的方式分配。用大括号声明不只是语法上的方便。 请注意,只有在声明数组时才能使用此形式: 但不是 要么 对象(数组是对象)在堆上分配。

  • 本文向大家介绍C# 委托声明的关键字是__?相关面试题,主要包含被问及C# 委托声明的关键字是__?时的应答技巧和注意事项,需要的朋友参考一下 答:delegate.  

  • 问题内容: 我从Android开发者网站复制了以下代码: 我想知道“这个”关键字到底指的是什么?它是否引用了类“ ExampleActivity”?通常,如何找到“ this”指的是什么? 问题答案: 它是指的实例,其上被调用。 通常,从Java语言规范15.8.3开始: 关键字this只能在实例方法,实例初始值设定项或构造函数的主体中,或在类的实例变量的初始值设定项中使用。如果它出现在其他任何地

  • 本文向大家介绍C++中声明类的class与声明结构体的struct关键字详解,包括了C++中声明类的class与声明结构体的struct关键字详解的使用技巧和注意事项,需要的朋友参考一下 class class 关键字声明类类型或定义类类型的对象。 语法 参数 template-spec 可选模板说明。 ms-decl-spec 可选存储类说明有关更多信息 tag 给定于类的类型名称。在类范围内的

  • 问题内容: 如果声明变量而不使用“ var”,则变量始终变为GLOBAL。 在函数内部声明全局变量是否有用?我可以想象在某个事件处理程序中声明一些全局变量,但这有什么用呢?更好地使用RAM? 问题答案: 不,没有RAM好处或类似的好处。 w3schools谈论的是我所说的“内隐全球性恐怖” 。考虑以下功能: 看起来很简单,但是由于线路上的错字,它返回,而不是。并创建一个带有输入错误名称的全局变量:

  • 问题内容: 如果我在一个类中有以下声明,其中是抽象类型: 是否能让我仍然能够更改中的对象的状态,但阻止我将新对象添加到列表中?如果我写错了,请您解释一下正在做什么以及何时应该使用关键字。 问题答案: 不,final关键字不会使列表或其内容不可变。如果您想要一个不可变的列表,则应使用: final关键字的作用是防止您为’synapses’变量分配新值。即,您不能写: 但是,您可以编写: