java课后实验性问题1

一、一个java类文件中只能有一个公有类吗?

测试代码

public class Test{
    public static void main(String[] args){
    }
    public class InnerClass{
    }
}

结果:可以有

二、把main方法的返回值由void改为int 编译能通过吗?能运行吗?

public class Test{
    public static int main(String[] args){
    }
}

结果:不能

三、为什么java规定作为程序入口点的main方法静态的?

  • 正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个main方法的实例。
  • 因为C和C++同样有类似的main方法作为程序执行的入口。
  • 如果main方法不声明为静态的,JVM就必须创建main类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。
  • 静态方法和静态数据加载到内存就可以直接调用而不需要像实例方法一样创建实例后才能调用,如果main方法是静态的,那么它就会被加载到JVM上下文中成为可执行的方法。

四、变量作用域; 同名变量屏蔽原则

测试代码:

public class Test{
    private static int value = 1;
public static void main(String[] args){    int value = 2; Sydtem.out.println(value); } }

结果:

五、为什么double类型的数值进行运算得不到“数学上精确”的结果?

double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

posted @ 2017-10-08 22:59  什么名都不好  阅读(176)  评论(0编辑  收藏  举报