public static void main(String[] args) {
File dir = new File("dir");
dir.mkdir();
File file = new File(dir,"file.txt");;;;;
;
;
;
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
;
;
;
;
}
}
编译器显示多余的分号没有错误。并且代码运行好像没有发生任何错误。我想知道幕后发生了什么?包括这样的分号是否会消耗更多的堆栈内存,从而需要更多的处理器周期才能运行?
我想知道幕后发生了什么?
;
AST中有一个额外的内容作为跳过语句。
例如,在while循环中,通常使用它们来代替空主体:
while (expression)
;
包括这样的分号是否会消耗更多的堆栈内存,从而需要更多的处理器周期才能运行?
不,它不会显示在字节码中。(这就是为什么在调试时通常不能将它们用作break语句的原因。)
一些琐事:
您实际上可能在类之外具有skip语句:
class MyClass {
// ...
}
;;;;;
这些将被忽略,并且仅允许它们不惹恼来自C ++的人员,并且被用来放置;
类:
class MyClass {
// ...
};
资料来源:我是Oracle的编译器开发人员
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句