Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 其他人知道这意味着什么吗?_Java - Fatal编程技术网

Java 其他人知道这意味着什么吗?

Java 其他人知道这意味着什么吗?,java,Java,可以在源文件java.util.TaskQueue.java引用中看到: 了解断言机制是如何工作的,了解断言语句如何影响性能是很有用的。当编译器在类中找到断言时,它会将生成的名为$assertionsDisabled的静态最终字段添加到类中。该字段未赋值(这是法定字节码)。断言本身被编译成以下形式的语句: 由于java标识符可以包含拉丁字母、$、和从字母开始的数字,其中$和u是一种字母$assertionsDisabled是类型boolean的有效java标识符 java/util/TaskQu

可以在源文件
java.util.TaskQueue.java

引用中看到:

了解断言机制是如何工作的,了解断言语句如何影响性能是很有用的。当编译器在类中找到断言时,它会将生成的名为
$assertionsDisabled
的静态最终字段添加到类中。该字段未赋值(这是法定字节码)。断言本身被编译成以下形式的语句:


由于java标识符可以包含拉丁字母、$、和从字母开始的数字,其中$和u是一种字母
$assertionsDisabled
是类型
boolean
的有效java标识符

java/util/TaskQueue.desiredAssertionStatus()
似乎不是有效的表达式。可能它应该看起来像
java.util.TaskQueue.desiredAssertionStatus()
。在这种情况下,它是从类
TaskQueue
调用静态方法
desiredAssertionStatus()

此方法返回布尔结果。
反转结果

唯一的问题是它到底是什么?由于这里出现了明显的语法错误(
/
而不是
),我假设这一行是java代码反编译或“错误”编码尝试的结果。我说得对吗


我刚刚检查了
java.util.TaskQueue.java
的源代码。它不包含这样的行。所以,我很确定现在你从反编译中得到了它。如果找不到所有类的源代码,您是否有IDE插件可以对其进行反编译?

这是因为这个类有一个断言,然后编译器为自己创建这个变量。

那么问题是什么?它是一个布尔变量,设置为
desiredAssertionStatus()
方法的反向返回值。显然,
java/util/TaskQueue
部分不是有效的java源代码。完美答案(+1)。但我相信这不是河间所问的。我相信他只是不明白这句话的语法含义。@HeJian,将JDK源代码连接到您的JDK。JDK源代码位于JDK安装目录下的文件
src.zip
static final boolean $assertionsDisabled = !java/util/TaskQueue.desiredAssertionStatus();
if ($assertionsDisabled)
  if (!boolean_expression)
    throw new AssertionError(String_expression);