JAVA语法基础》课程动手动脑及实验问题整理

  1. 枚举类型研究

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

结论要点:

· 枚举类型是引用类型
· 枚举不属于原始数据类型,每个具体值都引用特定的对象
· 相同的值引用同一个对象
· 可以使用"=="和equals()方法直接比对枚举变量的值,两者等价

  1. 二进制表示研究

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

研究要点:

· 理解原码、反码、补码的概念
· 通过位操作实验验证Java中数的表示方式
· 掌握Java中数值的二进制表示方法

  1. 变量作用域研究

问题:Java变量遵循"同名变量的屏蔽原则",请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。

研究要点:

· 理解变量的作用域概念
· 掌握同名变量的屏蔽原则
· 通过实验验证不同作用域下同名变量的访问规则

  1. 数据类型转换研究

问题:查看数据类型转换图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?

研究要点:

· 掌握各数据类型的位数和数值范围
· 理解自动类型转换和强制类型转换的规则
· 分析数据类型转换可能带来的精度损失

  1. 浮点数精度问题

问题:请运行TestDouble.java,你看到了什么样的输出,意外吗?为什么double类型的数值进行运算得不到"数学上精确"的结果?

研究要点:

· 理解浮点数在计算机内部的表示方法
· 分析浮点数运算精度损失的原因
· 掌握使用BigDecimal类解决精度问题的方法

  1. 字符串连接操作

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

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

研究要点:

· 理解字符串连接操作的执行顺序
· 掌握运算符优先级对输出结果的影响
· 分析表达式求值的顺序规则

二、课后实验性问题

  1. 验证码生成程序

问题:如果要由你写一个自动生成验证码的程序,你能完成这个任务吗?参考RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运行时,都会生成不同的字符串。

实验要求:

· 实现一个能够生成随机验证码的程序
· 验证码应包含数字和字母组合
· 每次运行生成不同的验证码字符串

  1. 四则运算题目生成器

问题:一家软件公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道四则运算题目给小学生做。请实现这个程序。

实验要求:

· 自动生成30道四则运算题目
· 包含加、减、乘、除运算
· 题目难度适合小学二年级水平
· 可以输出到控制台或文件

  1. 数据类型转换实验

问题:请运行TestDouble.java,观察浮点数运算的精度问题,然后使用BigDecimal类重新实现,解决精度损失问题。

实验要求:

· 重现double类型的精度问题
· 使用BigDecimal类进行精确计算
· 比较两种方法的计算结果差异

三、总结

通过完成这些动手动脑问题和实验性问题,我深入理解了:

  1. Java基本语法和数据类型
  2. 枚举类型的使用和特性
  3. 变量作用域和同名变量屏蔽原则
  4. 数据类型转换规则和注意事项
  5. 浮点数精度问题及解决方案
  6. 字符串操作和表达式求值规则
posted @ 2025-09-29 13:35  高子轩  阅读(7)  评论(0)    收藏  举报