当前位置: 首页>编程语言>正文

java一个程序中可以有多个main么 一个java程序可以有几个main

问题一

Java类中只能有一个公有类吗?用Eclipse检测以下程序是否正确。是否在接口中同样适用。

java一个程序中可以有多个main么 一个java程序可以有几个main,java一个程序中可以有多个main么 一个java程序可以有几个main_Java,第1张

答:一个源文件里必须稚嫩发有一个公有类,名称必须与文件名一致。以上程序经过编译没有提示错误。java接口是一系列方法的声明,可以有多个公有类,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。

 

问题二

把main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?

答:不能运行,无法编译。

编译结果如下:

java一个程序中可以有多个main么 一个java程序可以有几个main,java一个程序中可以有多个main么 一个java程序可以有几个main_java_02,第2张

 

问题三

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

答:静态比较方便,不用去构造实例化,非静态的main,需要对类进行实例化,再调用main,实例化代码可能还需要实例化,比较麻烦。如果main方法不声明为静态的,JVM就必须创建main类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。静态方法和静态数据加载到内存就可以直接调用而不需要像实例方法一样创建实例后才能调用,如果main方法是静态的,那么它就会被加载到JVM上下文中成为可执行的方法。

 

问题四

 Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值?

答:程序源码

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

程序结果

java一个程序中可以有多个main么 一个java程序可以有几个main,java一个程序中可以有多个main么 一个java程序可以有几个main_System_03,第3张

 

问题五

看着这个图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?(虚线表示有精度损失,实线表示没精度损失)

 

java一个程序中可以有多个main么 一个java程序可以有几个main,java一个程序中可以有多个main么 一个java程序可以有几个main_System_04,第4张

答:char 8位二进制数范围是-2的7次方到2的7次方-1,byte 8位带符号整数-128到127之间的任意整数,short 16位无符号整数-32768到32767之间的任意整数,int 32位带符号整数-2的31次方到2的31次方-1之间的任意整数,long 64位带符号整数-2的63次方到2的63次方-1之间的任意整数,float 32位单精度浮点数,double 64位双精度浮点数。结论是:Java会自动完成从低级类型向高级类型转换,即取值范围相对较小的数据类型转换成取值范围相对较大的数据类型。

 

问题六

运行以下程序:

public class TestDouble {
    public static void main(String args[]) {
        System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
        System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
        System.out.println("4.015 * 100 = " + (4.015 * 100));
        System.out.println("123.3 / 100 = " + (123.3 / 100));
    }
}

你看到了什么样的输出,意外吗?

答:程序结果

java一个程序中可以有多个main么 一个java程序可以有几个main,java一个程序中可以有多个main么 一个java程序可以有几个main_开发工具_05,第5张

原因:事实上浮点运算很少是精确的,只要是超过精度能表示的范围就会产生误差。往往产生误差不是因为数的大小,而是因为数的精度。因此,产生的结果接近但不等于想要的结果。尤其在使用

 

问题七

以下代码的输出结果是什么?

 int X=100;

 int Y=200;  

System.out.println("X+Y="+X+Y);

 System.out.println(X+Y+"=X+Y");  

会有什么结果?为什么会有这样的输出结果?

 

答:输出结果是:X+Y=100200

        300=X+Y

原因:System.out.println("X+Y="+X+Y)中的“+”为连接运算符,

System.out.println(X+Y+"=X+Y")中的“+”为加法运算符,即为两个数相加。

 

 

 


https://www.xamrdz.com/lan/52s1923091.html

相关文章: