20165215 2017-2018-2 《Java程序设计》第2周学习总结
教材学习内容总结
chapter2
- 逻辑类型
boolea
只能赋值true
或false
- 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 |