在Java中,假等于真怎么可能
在这个程序中,false如何等于true:
public class Wow {
public static void main(String[] args) {
if ( false == true ){ // \u000a\u007d\u007b
System.out.println("How is it possible!!!");
}
}
}
在这个程序中,false如何等于true:
public class Wow {
public static void main(String[] args) {
if ( false == true ){ // \u000a\u007d\u007b
System.out.println("How is it possible!!!");
}
}
}
好吧,我会慷慨地假设这个问题是出于无辜。
Java 编译器在过程的早期解析 Unicode 转义序列。特别是,它在剥离注释或检查语法之前执行此操作。由于 是换行符,是字符 “}” 并且是字符 “{”,解析器实际上是在解析此程序:\u000a
\u007d
\u007b
public class Wow{
public static void main(String[] args) {
if ( false == true ){ //
}{
System.out.println("How is it possible!!!");
}
}
}
该程序将始终打印“不可能”的输出。
我只是在尝试这个问题,(答案也是),并发现了有趣的行为
public class TestUniCode {
public static void main(String[] args) {
System.out.println(" Printing first line");
// \u000a\u007d\u007b
System.out.println(" Printing second line");
}
}
非常令人惊讶的是(对我来说),它只打印,而忽略了第二行Printing first line
编辑 - 我明白了,它在第一行之后关闭主方法,第二行将在主线外作为单独的块