Answer:

动手动脑:

1:1.1——仔细阅读实例:EnumTest.java,运行它,分析运行结果?

1.2——你能得到什么结论?你掌握了枚举变量的基本用法了吗?

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

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

2——看着这个图,再查查java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论。

02_java语法基础_课程动手动脑问题以及课后实验性问题及解答集锦-LMLPHP

Answer:

数据类型可以分为两大类:  1)基本类型;  2)扩展类型。

先来看一下Java语言的基本数据类型。

JAVA规范没有明确指出boolean占几个字节。JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理。

  Byte 8位带符号整数 -128到127之间的任意整数

  Short 16位无符号整数 -32768~32767之间的任意整数

char 16位,char型是用来表示字符的,它仅能表示一个单一的字符。通常char型常量必须使用单引号括起来,以与数字区分开来。其在java中并不是很常用,因为如果要存储字符的话,一般使用扩展的数据类型string.

  Int 32位带符号整数 -2^31到2^31-1之间的任意整数

  Long 64位带符号整数 -2^63到2^63-1之间的任意整数

  Float 32位单精度浮点数 根据IEEE754-1985标准

  Double 64位双精度浮点数 根据IEEE754-1985标准 一些提示:

  不象其它程序设计语言,Java语言中的整型的位数是固定的,而不会根据硬件平台以及操作系统的不同而不同。

结论:低位向高位转换是自动转换,无精度损失。高位向低位转换是强制转换,有精度损失。

3——

02_java语法基础_课程动手动脑问题以及课后实验性问题及解答集锦-LMLPHP

Answer:

输出结果为:02_java语法基础_课程动手动脑问题以及课后实验性问题及解答集锦-LMLPHP

对于在System.out.println()语句中的+,如果+的前面是字符串,如“X+Y”就是个字符串,这种情况下,不管后面接的是整型、布尔型等等,都默认是拼接字符串,而不会进行加法运算。

课后练习:

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

Answer:

二进制表示的负数和正数:

正数的原码,反码,补码就是它的二进制数
负数的原码是它的二进制数(不包含符号位)
负数的反码是原码各位取反,0取反是1,1取反是0( 不包含符号位)
负数补码就是反码加1(不包含符号位)
如+5的原码,反码,补码都是1,101
而-5的原码是0,101
反码0,010
补码0,011

正号用1表示
负号用0表示

java中的数是采用补码表示的,当其为正数时,补码和原码相同,当其为负数时,补码为原码取反加1.

注释:在2进制面前加“0”即为表示负数,但是需要满足4为或是8位,如果不足的需用0补齐
例如:10进制:2; 2进制: 10
10进制:-2; 2进制:0010,此数需补足4位,所以不是010,而是0010
如果多出4位,则扩展为8位,并在首位加“0”例如10010的负数为00010010

2——java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就像本示例一样,有意识地在不用地方定义一些同名变量,看看输出的到底是是哪个值。

Answer:对于同名变量,若变量是在局部内定义并使用,那么将屏蔽全局变量,而使用局部变量的值。

若变量是在全局定义并使用,那么将屏蔽局部变量,而使用全局变量的值。

04-27 23:26