相关疑难解决方法(0)

为什么Java允许我们编译名称与文件名不同的类?

我有一个文件Test.java和里面的代码.

public class Abcd
{
        //some code here

}
Run Code Online (Sandbox Code Playgroud)

现在这个类没有编译,但是当我删除public修饰符时,它编译得很好.

Java背后的原因是什么允许我们在不公开时编译与文件名不同的类名.

我知道这是一个新手问题,但我无法找到一个好的解释.

java

170
推荐指数
5
解决办法
7731
查看次数

为什么包含main方法的类不需要在Java中公开?

我写了以下代码

 
  class Hello //Note the class is not public
  {
        public static void main(String args[]) {
System.out.println("Hello"); } }

因此,当我运行它时,它运行正常并打印输出"Hello".

但是,如果JVM规范要求主要方法应该是公开的,因为"它不能看到主要的",那么它不应该也适用于类吗?如果JVM"未能看到"Hello.main(),当它未被声明为public时,它如何能够看到A类本身.

除了"因为规范是这样说的"之外,还有其他解释吗?

如果JVM能够看到所有类和方法,因为它本身就是"安全/可见性执行器",那么为什么需要将main方法声明为public.

java

6
推荐指数
2
解决办法
3968
查看次数

空文件是有效的Java源文件.如何在JVM中处理它?

空文件是有效的Java源文件,但它是如何在JVM中处理的?

java jvm

5
推荐指数
2
解决办法
3815
查看次数

标签 统计

java ×3

jvm ×1