Java作业张博林20224141

一、EnumTest.java运行

 


结论:1.枚举类型是引用类型,而非原始数据类型,他的每个具体值都引用一个特定的对象。

  1. 可以使用==”和equals()方法直接比对枚举变量的值。

 

二、数值的二进制表示

原码是一种表示有符号整数的二进制形式,它的最高位表示符号位,0表示正数,1表示负数,其余位表示数值部分。

反码是对原码的一种变换,对于正数而言,反码与原码相同,对于负数而言,反码是将原码除符号位外的每一位取反。

补码是对反码的一种变换,对于正数而言,补码与原码相同,对于负数而言,补码是将反码加1

以下是一个Java示例代码的运行,展示了对正数和负数进行位操作的结果:

 

 

从输出结果可以看出,正数的二进制表示与手工计算的结果一致。负数的二进制表示是正数的二进制表示取反后加1,与补码的定义相符。此示例证明了Java中的整数是采用补码表示的。

三、同名变量的屏蔽原则

Java中,同名变量的屏蔽原则是指当在一个作用域内定义了一个与外部作用域同名的变量时,内部作用域的变量会屏蔽外部作用域的同名变量。

 

以下是一个示例代码运行,展示了同名变量的屏蔽原则:

 

编译结果可以看出,内部作用域的变量x屏蔽了外部作用域的同名变量x。在内部作用域中,访问变量x时获取的是内部作用域的变量值;在外部作用域中,访问变量x时获取的是外部作用域的变量值。

 

这个示例说明了Java中同名变量的屏蔽原则。

四、Java中的类型转换

Java中,不同的数据类型具有不同的位数和表示范围。以下是Java中常见的数据类型及其位数和表示范围:

- byte8位,范围为-128127

- short16位,范围为-3276832767

- int32位,范围为-21474836482147483647

- long64位,范围为-92233720368547758089223372036854775807

- float32位,范围为3.40282347E+381.40239846E-45(正负数)

- double64位,范围为1.7976931348623157E+3084.9406564584124654E-324(正负数)

- char16位,范围为065535(无符号整数)

- boolean:没有明确规定位数,只能表示truefalse

从上述数据类型的位数和表示范围可以得出以下结论:

- 整数类型(byteshortintlong)的表示范围是有限的,可以表示有符号整数。

- 浮点数类型(floatdouble)的表示范围更大,可以表示更大的数值范围,但是精度相对较低。

- char类型表示无符号整数,范围是065535,可以用来表示Unicode字符。

- boolean类型只能表示truefalse,没有明确的位数规定。

根据数据类型的位数和表示范围,我们可以选择合适的数据类型来存储我们需要的数值,并确保不会溢出或损失精度。

五、TestDouble.java运行

 

 

六、数值与字符

 

这是因为在Java中,当使用`+`运算符连接字符串和其他类型时,会将其他类型转换为字符串,并将它们拼接在一起。在第一行中,`"X+Y="`是一个字符串,而`X``Y`是整数。因此,`X``Y`被转换为字符串,并与`"X+Y="`拼接在一起,得到`"X+Y=100200"`而在第二行中,`X``Y`是整数,因此它们会先相加得到`300`,然后`300`被转换为字符串,并与`"=X+Y"`拼接在一起,得到`"300=X+Y"`这种行为是由Java语言的运算符优先级和结合性决定的。

七、随机生成30道四则运算

 

 

posted @ 2023-09-15 11:30  Verneyyx  阅读(23)  评论(0)    收藏  举报