1.一个Java类中只能有一个共有类吗?
是
java程序是从一个public类的main函数开始执行的,(其实是main线程),就像C程序是从main()函数开始执行一样.只能有一个public类是为了给类装载器提供方便. 一个public类只能定义在以它的类名为文件名的文件中。
每个编译单元(文件)都只有一个public 类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public类,编译器就会报错.并且public类的名称必须与文件名相同(严格区分大小写)。 当然一个编译单元内也可以没有public类。
在一个源文件.JAVA文件中可以有很多类,只有一个PUBLIC类其他的都不能是.
在PUBLIC类中找程序的入口 main函数 你想想如果很多PUBLIC类,那程序从何运行呢?
2. public static void main()中void改为int.
可以,
但要有返回值“return 0"
3.为什么Java规定程序入口为static?
静态犯法无需实例化,就可以调用,如果不是静态,main函数要有对象调用,
main是程序执行入口,实例化再调用main是不能实现的。
4.同名变量
Java变量遵循”同名变量屏蔽原则“-主要是看变量的作用域,函数调用同一域的变量。
5为什么double类型的数值计算不是”数学上的精确数“?
java中十进制与二进制转化时存在问题,double类型的数值占 用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低
位上一定会与实际数据存在误差,简单来说就是我们给出的数值,在 大多数情况下需要比64bit更多的位数才能准确表示出来(甚至
是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果
6
当"X+Y="在前时,默认的把int型X,Y转化为String型,"X+Y="使编译器认为X,Y是String型的了,System.out.println()本身的参数默认为String型,
遇到这种情况默认了转化,产生了如此结果,而第二个就是简单的输出,没有让计算器产生“误解”。