java基本知识课后作业

本文深入探讨了Java中的枚举类型及其基本用法,包括枚举类型的特性与比较方式。此外,还介绍了数值的二进制表示,特别是Java如何使用补码来表示数值。同时,文章分析了double类型在进行数学运算时为何会出现精度问题,并通过具体示例解释了Java变量的同名变量屏蔽原则。

一.动手动脑
(1)仔细阅读示例: EnumTest.java,运行它,查看运行结果?

 

(2)你能得到什么结论?你掌握了枚举类型的基本用法了吗?
·枚举类型是引用类型。枚举不属于原始数据类型,它的每个具体值都   引用一个特定的对象。相同的值则引用同一个对象。可以使用“==”   和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的   变量,“==”和equals()方法执行的结果是等价的。
二.数值的二进制表示
(1)反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进   行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java     中的数是采用上述哪种码表示的。
1.原码:一种计算机中对数字的二进制定点表示方法。原码表示法在数   值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数   该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
2.反码:对于正数,它的反码表示与原码相同;对于负数,是其原码逐   位取反,但符号位除外。
3.补码:对于正数,于原码相同;对于负数,则是反码加1。
4.Java用的是补码。
三.动手实验
请运行以下代码(TestDouble.java)你看到了什么样的输出,意外吗?

 


四.你知道原因吗
(1)为什么double类型的数值进行运算得不到“数学上精确”的结果。
·因为java中十进制与二进制转化时存在问题,double类型的数值占   用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低   位上一定会与实际数据存在误差,简单来说就是我们给出的数值,在   大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需   要无穷多位),而double类型的数值只有64bit,后面舍去的位数一   定会带来误差,无法得到“数学上精确”的结果。
五.动手动脑
(1)以下代码的输出结果是什么?
  int X=100;
  int Y=200;
  System.out.println("X+Y="+X+Y);
  System.out.println(X+Y+"=X+Y");

 

 


(2)为什么会有这样的输出结果?
1.加号是连接符的作用。
2.加号是运算的意思。
六.Java变量遵循“同名变量的屏蔽原则”
·输出结果是2。
·输出的是主函数之中的值!

 

转载于:https://www.cnblogs.com/wf1647790534/p/5936478.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值