JAVA语言基础课程作业02

1.一个java类文件中真的只能有一个共有类吗?

java程序是从一个public类的main函数开始执行的(其实是main线程),就像C程序是从main()函数开始执行一样。只能有一个public类是为了给类装载器提供方便。一个public类只能定义在以它的类名为文件名的文件中。

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

静态成员函数在执行前必须先构造并实例化该函数所在的类。
如果允许非静态的main,那么main函数所在的类必须先进行实例化,
那么就需要再写个函数去实例化main所在的类,再调用main,这个实例化代码又写在哪呢?如果它也是非静态的,岂不是又要写个函数去实例化它所在的类嘛?
因此,java语言就规定了main必须是静态的。

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

main方法中将void改为int程序可运行,能编译通过,需要在main方法里加入return 语句

4.运行TestDouble.java

运行截图:

原因分析:

double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

5.变量作用域问题:

Java中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。

类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。 对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。 方法级变量就是在方法内部定义的变量,就是局部变量。

方法内部除了能访问方法级的变量,还可以访问类级和实例级的变量。

块内部能够访问类级、实例级变量,如果块被包含在方法内部,它还可以访问方法级的变量。

方法级和块级的变量必须被显示地初始化,否则不能访问。

6.同名变量的屏蔽原则:

如果程序代码中有同名变量,输出时按照就近原则输出。

7.类型转换精度问题得出什么结论:

byte 占1个字节,有效位8位,范围-128 ~ +127

short占2个字节,有效位16位,范围-32768 ~ +32767

int占4个字节,有效位32位,范围-2^31 ~ +2^31-1

long占8个字节,有效位64位,范围-2^63 ~ +2^63-1

float占4个字节,有效位32位,范围-3.403E38~3.403E38 

double占8个字节,有效位64位,范围-1.798E308~1.798E308 

char占1个字节,有效位8位

如果两个操作数中有一个是double类型,另一个就会转换为double类型;

否则,如果有一个操作数是float,另一个就会转化为float;

否则,如果有一个操作数是long,另一个就会转换为long;

否则,两个操作数都将转换为int类型。

8.为什么输出结果会不同?

int x=100;

int y=200;

System.out.println("x+y="+x+y);

System.out.println(x+y+"=x+y");

 

第一个输出语句先输出了字符,系统把后面+当作连接作用直接输出了两个数据的值;第二个输出语句系统默认第一个+为运算符号,所以输出结果会有不同。

原文地址:https://www.cnblogs.com/mqlblog/p/7631536.html