---恢复内容开始---
1、一个Java类文件中只能有一个公有类吗
一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求。
至于main()不是必须要放在public类中才能运行程序。
2、把main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?
不能 必须返回int类型的结果
3、为什么java规定作为程序入口点的main() 方法静态的?
非静态成员函数在执行前必须先构造并实例化该函数所在的类。如果允许非静态的main,那么main函数所在的类必须先进行实例化,
那么就需要再写个函数去实例化main所在的类,再调用main,这个实例化代码需要去再实现。如果它也是非静态的,有需要写一个实例化,一直重复不能实现。
因此,JAVA语言就规定了main必须是静态的。
4、变量的作用域
在Java中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。
类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。 对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。 方法级变量就是在方法内部定义的变量,就是局部变量。
说明:
方法内部除了能访问方法级的变量,还可以访问类级和实例级的变量。
块内部能够访问类级、实例级变量,如果块被包含在方法内部,它还可以访问方法级的变量。
方法级和块级的变量必须被显示地初始化,否则不能访问。
5、关于double类型数值运算的精确性问题及其解决办法
定义两个double 类型变量number1=0.01;number2=0.05;
number1+number2=0.06000000000000005;
很明显结果是不精确的.
解决办法:定义String 类型number1,number2等等,用BigDecimal类的对象接受number,
在调用BigDecimal中加减乘除函数.
6、以下代码输出什么?
以下代码的输出结果是什么?
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()中的+号,在连接数值类型时是运算符,在连接字符串时是连接符