动手动脑的问题以及课后实验性的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手动脑的问题以及课后实验性的问题相关的知识,希望对你有一定的参考价值。
1.一个Java类文件真的只有一个公类吗?
请使用Eclipse或javac检测一下以下代码,有错吗?
答:经检验一个Java类文件中只能有一个公有类。java程序是从一个public类的main函数开始执行的,就像C程序是从main()函数开始执行一样。public类只能定义在以它的类名为文件名的文件中。每个编译单元(文件)都只有一个public类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public类,编译器就会报错。并且public类的名称必须与文件名相同(严格区分大小写)。当然一个编译单元内也可以没有public类。在一个源文件.java文件中可以有很多类,只有一个public类其他的都不能是在public类。
2.输出的结果是什么?
输出结果为2。
3.为什么double类型的数值进行运算得不到“数学上精确”的结果?
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方。简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。
4.以下代码的输出结果是什么?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
实验程序
public class dongshoudongnao {
public static void main(String[] args) {
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
}
}
输出结果:
原因:因为双引号在输出中意思为直接输出,而+x+y为依次输出x,y。所以输出结果为x+y=100200。而第二个首先为x+y意思是输出这个表达式,之后+“=x+y”则为直接输出引号内的内容。所以输出结果位300=x+y。
以上是关于动手动脑的问题以及课后实验性的问题的主要内容,如果未能解决你的问题,请参考以下文章