一:
Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就像本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。
对于同名变量,若变量是在局部内定义并使用,那么将不适用全局变量,而使用局部变量的值。
若变量是在全局定义并使用,那么将屏蔽局部变量,而使用全局变量的值。
二:
运行以下代码:
package JavaApp;
public class java1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
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));
}
}
运行结果:
0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999
所以说为什么double类型的数值进行运算得不到“数学上精确”的结果?
因为double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果.
六.以下代码的输出结果是什么?
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
原文:https://www.cnblogs.com/liyuchao/p/9750764.html