第二周作业

枚举类型类型能够通过预定义数值是编程变得更为便捷,并且可以增加代码的可读性并且因为其地址值唯一,可以同时通过equals()和==两种方式进行两个值之间的对比,但是枚举类型的每一个枚举值都是一个对象,因此在使用时会增加额外的内存消耗,因此枚举类型会比String等类型占用更多的内存。

枚举类型的使用方式有很多,例如对星期进行进行预定义,调用时更加便捷,也可以用0和1等方式区别男女,使代码的可读性变高。同时枚举类型中的数据也可以进行比较判断,规则是:按其在说明时的顺序号比较,如果说明时没有人为指定,则第一个枚举元素的值认作 0。一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值。

源码:数值的符号位加上其真值的绝对值,范围是[-127,127],也就是二进制的[11111111,01111111]

反码:正数的反码等于它本身。

负数的反码等于在其源码的基础上,符号位不变,其余位取反。

      10010000的反码为11101111

补码:正数的补码等于它本身

负数的补码等于其反码加一

Java在运算时使用补码,省去计算机判断符号位或者说判断+/-运算的麻烦。采用补码表示后,不管是加法还是减法都是加法运算。同时也能尽量保证系统编码的连续性和一致性,同时避免了+/- 0的窘境。

Java的同名变量的屏蔽规则,Java中每个变量都有自己的作用域,在离开了这个作用域后变量将不会生效,而同名的变量在指定的范围内有自动屏蔽的原则,即局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

double类型的数值进行计算得不到数学上准确的结果。这个问题涉及到二进制与十进制的转换,计算机进行的是二进制运算,我们输入的十进制数字会先转换成二进制,进行运算后再转换为十进制输出,有些数字不能完全转换,只能无限接近于原本的值,这就导致了在后来的运算会出现不正确结果的情况。为了解决这一问题,Java中专门提供了BigDecimal类来进行精确计算,首先float或者double变量构建BigDecimal对象,之后通过调用BigDecimal的加,减,乘,除等相应的方法进行算术运算,最后 把BigDecimal对象转换成float,double,int等类型。不仅仅是在进行计算时,将字符串转换为double或int类型数据时也可以使用此方法。

课堂测试3:在进行编程之前应当理清思路,从题目入手,可以看出输出题目是这道题的关键,因此可以先编写输出题目的函数,之后在于其他的条件进行组合判断,确定输出题目数量可以通过for循环实现,是否有乘除号可以通过if条件判断是否包含乘除号之后再进行输出,是否右括号同理,定制数字范围也可以通过if判断产生的随机数是否符合规范或者直接对取随机数的范围进行规定。在理清每一步所需要的程序之后在进行组合,从而能更加条理清晰的实现程序。

自身问题:编程时想法不够清晰,应当将一些需要反复利用的问题做成函数方便调用,同时对各种情况的判断不够明确,容易出现错误判断

 

posted @   wrf12  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示