空文件是有效的Java源文件。如何在JVM中处理它? [英] Empty file is a valid Java source file. How it is handled inside the JVM?
问题描述
空文件是有效的Java源文件,但它是如何在JVM中处理的?
Empty file is valid Java source file, but how it is handled inside the JVM?
推荐答案
没有人 - .java文件和.class文件之间的一对一关系。你拥有的是类(或类声明)和.class文件之间的一对一关系。
There is no one-to-one relation between .java-files and .class-files. What you have is a one-to-one relation between classes (or class-declarations) and .class-files.
没有类声明的Java源文件不会产生任何 .class
文件,所以它不是真的由JVM处理。
$ touch Test.java
$ ls
Test.java
$ javac Test.java
$ ls
Test.java
在Java语言规范中,Java源文件与编译单元是同义词。 JLS中的相关部分是 7.3编译单元。
In the Java Language Specification a Java-source file is synonym with a Compilation Unit. The relevant section in the JLS is 7.3 Compilation Units.
语法描述如下:
CompilationUnit:
PackageDeclaration opt ImportDeclarations opt TypeDeclarations opt
...
CompilationUnit:
PackageDeclarationopt ImportDeclarationsopt TypeDeclarationsopt
...
opt -subscript表示该部分是可选的。由于TypeDeclarations是可选的,因此不需要存在类声明。
The opt-subscript says that the part is optional. Since TypeDeclarations is optional, no class-declarations need to exist.
这篇关于空文件是有效的Java源文件。如何在JVM中处理它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!