20175323《Java程序设计》第二周学习总结

一、教材学习内容总结
  • 标识符第一个字符不能是数字且区分大小写数据类型转换时只允许把精度低的给精度高的,否则必须强制转换
    输入数据语法
Scanner reader = new Scanner(System.in)
int m = reader.nextInt()
  • 创建数组需要先声明数组再为数组分配变量,声明数组时不能再方括号里面指定数组元素的个数
  • 声明数组可以和指定数组一起完成
float boy[] = new float[4]
  • 数组元素的索引是从0开始
  • 对于二维数组来说x.length是指含有一维数组的个数
  • 算术混合运算时如果表达式的最高精度低于int型,则按int型精度进行运算
  • 逻辑运算符&&和||也称短路运算符
  • 位运算的时候用的是二进制,计算结果的精度取高的那一位,与逻辑运算不同的是,位运算符要先计算出变量的值,而逻辑运算不会改变变量的初值
  • 常见的除了逻辑非和自增自减运算是从右到左之外,其他运算都是从左到右
  • switch语句中表达式的值可以是byte、short、int、char,不可以是long
  • 遍历数组还可以用
for (int i: a) 

二、教材学习中的问题和解决过程
- 问题1:不明白36页的Example3_1为什么会出来这样的结果,char型变量怎么按位异或?

- 问题1解决方案:百度得知Char型变量做按位异或的时候,是用ASCII码表的二进制表示异或出来的
三、代码调试中的问题和解决过程
- 问题1:教材22页的Example2_2的运行结果不理解,d的值为什么变成了如下图所示
- 问题1解决方案:首先注意g是用幂表示法显示的,1.23456792E8=1.23456792x108次方。
  其次floatdouble都有精度限制,即使是double也不能精确保存你赋值的小数部分,所以小数最后几位会有变化
- 问题2:一开始不理解为什么42页的Example3_4的结果会出现好几个数都是一等奖
- 问题2解决方案:读了两遍书上的说明,明白了case语句里面没有break时,程序会执行后续的case语句,直到碰到break为止
#代码托管(https://gitee.com/ruirui_yummy/java-besti-20175323)

心得体会

  • 最重要的过程还是看书敲代码的过程,但是这周学习有点松懈,下周会振作起来

学习进度条

 
  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 7000行 20篇 200小时  
第一周 30/30 1/1 18/18  
第二周 226/256 1/2 12/30  
 
  • 计划学习时间:20小时

  • 实际学习时间:12小时

猜你喜欢

转载自www.cnblogs.com/ruirui56/p/10506787.html