20165215 2017-2018-2 《Java程序设计》第2周学习总结

20165215 2017-2018-2 《Java程序设计》第2周学习总结

教材学习内容总结

chapter2

  • 逻辑类型boolea只能赋值truefalse
  • Java没有无符号整数类型,例如unsighed int m 是错误的
  • 可用字符在Unicode中排序的十六进制装义(用u做前缀)表示该字符;char x='a'等价于char x=97
  • 浮点类型float保留8位有效数字,double保留16位有效数字。例如float x=12345.123456789f中实际存储的值为12345.123.
  • 输入字符串过长时,不可在" "中回车,应拆解成" "+ " "然后在+号前后进行回车换行。
  • Java不允许在声明数组中的方括号内指定数组元素的个数
  • int []a,b[]等价于int a[],b[][]
  • 两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素

chapter3

运算符、表达式和语句这章所讲的内容与C语言有很多相同之处,因此本章的内容总结主要是针对两者的不同

  • 关系运算符与表达式的运算结果为boolean型,逻辑运算与表达式的操作元必须是boolean
  • switch(表达式)中“表达式”的值可以为byte、short、int、char型,但不可为long型
  • do while与while的区别在于do while中的循环体至少被执行一次
  • 执行break语句则结束整个循环;continue语句结束本次循环,进行下一次循环
  • for 语句与数组的格式为:

for(声明循环变量:数组的名字),其中声明循环变量的类型必须与数组类型相同

教材学习中的问题和解决过程

  • 问题1:如何理解Java中不存在byte/short型常量的表示法,但可以把一定范围内的int型常量赋值给byte/short型变量?
  • 问题1解决方案:通过查询,我找到这样一个说明

常量有两种,一种是final 的变量,由于不能修改,大家称是常量,另一种是真实的值,例如“abc” 这才是正统的常量。

有一列数 1, 2L,3.0, 4.0f。系统会认为第一个是int常量,第二个带 L是long型常量,第三个是double型,第四个是 float型。 但是 byte/short类型没有这样的写法。但只要定义final byte A=1; final short B=2;则A和B就是对应的常量了。

  • 问题2:如何理解教材中的例子
   byte a = (byte)128;
   byte b = (byte)(-129);
   那么a和b得到的值分别是-128和127
  • 问题2解决方案:跟随微视频的课程学习,我是这样理解的:byte的取值范围为-128~127,以此为一个周期无限循环。存储中应是如此排列:……126、127、-128、-127……0,1,……127,-128……
  • 问题3:如下程序,我理解的输出结果应为x=-6,y=0,事实上代码运行结果为x=-5,y=-1
public class E4 {
    public static void main (String args[]) {
      int x=1,y=6;
      while(y-->0) {
        x--;
      }
      System.out.print("x="+x+",y="+y);
    }
}
  • 问题3解决方法:

x--表示在使用过x之后,使x的值减1
以此本题应如此理解

循环次数 判断是否循环时的y值 y的实际值 x的实际值
1 6 5 0
2 5 4 -1
3 4 3 -2
4 3 2 -3
5 2 1 -4
6 1 0 -5
7 0 -1 /

当判断到y=0时结束循环体,此时y的取值为-1,x=-5

代码调试中的问题和解决过程

  • 问题1:如何打出Example2_1中的日文字符あ
  • 问题1解决方案:第一种是直接在Ubuntu中选择虚拟键盘里的平假名,便可以看到;第二种是在Ubuntu下安装日语输入法,然后敲击按键a便可找到。
  • 问题2:
  • 问题2解决方案:在"Byte.MIN_VALUE"至"+Byte.MAX_VALUE的"至"前缺少+,加上即可
  • 问题3:
  • 问题3解决方案:注意()使用的是英文格式即可

代码托管

statistics.sh脚本的运行结果截图

其他(感悟、思考等,可选)

上周的考试可以说是措手不及,我调试的章节代码只是微视频里讲解的几个,不知道这个任务是包括章节习题里面的所有代码,但本周我便改正了这个问题,将章节里出现的完整的代码都调试一遍。还有就是本周课堂测试包的考点也给了我深刻的教训,老师第一周课上讲解的内容我有认真地做笔记记录,但因为不是第一章的学习内容,课后便没有再复习,导致我考试时明明有印象却因为一些细节的问题没能完成任务。在今后的学习中,老师上课讲过的知识点都会认真地加以巩固的。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 37/37 1/1 15/15
第二周 398/429 2/3 15/30

参考资料

原文地址:https://www.cnblogs.com/fyss/p/8546456.html