一分钟java小课堂_java课堂小作业

标签:

1.java 枚举类型和数据二进制等问题思考

以下代码的输出结果是什么?为什么会有这样的输出结果?

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

答:输出的结果为X+Y=100 200 300=X+Y;第一个+X+Y的意思就是在“X+Y=”字符串后面加上“X”、"Y"两个变量,而第二个中X+Y则是变量X和Y进行相加运算

2.仔细阅读示例: EnumTest.java,运行它,分析运行结果?你能得到什么结论?你掌握了枚举类型的基本用法了吗?

答:结论是枚举类型是引用类型!枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

3.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。

答:1.原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 2.反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.3.补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。Java中使用的是补码。

4.请运行以下代码(TestDouble.java)

20180110213252173067.png

20180110213252174043.png

5.为什么double类型的数值进行运算得不到“数学上精确”的结果?请通过互联网查找资料,或者是阅读相关计算机教材,解决这个问题。(提示:这个问题,与浮点数在计算机内部的表示方法有关系)

答:这个涉及到二进制与十进制的转换问题。double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。

6.Java变量遵循“同名变量的屏蔽原则

20180110213252175996.png

输出结果为2;

标签:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值