20145216 《Java程序设计》第2周学习总结
教材学习内容总结
第三章 基础语法
3.1 类型、变量与运算符
•类型
•基本类型
•整数:short(占2字节)、int(占4字节)、long(占8字节)
•字节:byte
•浮点数:float(占4字节)、double(占8字节)
•字符:char(汉字、英文字符都是双字节的)
•布尔:boolean(true/false不能与其他类型进行运算)
•类类型
•变量 :数据暂存位置在程序语言中称为变量,变量在命名时不可使用数字作为开头,也不能使用一些特殊字符,而变量名称不可与Java关键词同名,也不可与Java保留字同名。
•运算符
•算术运算 :+、-、*、/、%
•关系运算:>、>=、<、<=、==、!=(注意不要对浮点数进行相等性运算)
•条件运算符: 条件表达式 ? 成立时返回值:失败时返回值
•逻辑运算:与(&&)、或(||)、非(!)(运算结果是boolean值:true或false)
•位运算 :运算结果为位串(位向量),常用于掩码(Mask)运算
•与(&):全1为1,有0则0
•或(|):全0为0,有1则1
•非(~):书上说是补码,按我们的习惯应该是反码
•异或(^):相同为0,不同为1
•左移(<<):最右补0
•算术右移(>>):右移后,正数最高位补0,负数最高位补1
•逻辑右移(>>>):右移后,最高位总是补0
•递增、递减:i++、i--、++i、--i
•赋值:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=
注意:x=y是指将y的值赋给x,而x==y是比较x与y是否相等。
•类型转换
•短->长(widening)是安全的,长->短(narrowing)必须强制转换
•类型转换 •短->长(widening)是安全的,长->短(narrowing)必须强制转换
3.2流程控制
•Structured programming(结构化程序设计)包含三种语句
•顺序
•分支:if、if...else、if...else if、switch...case(如果判断的具体数值不多,且符合byte、short、int、char这四种类型,建议使用switch语句;如果是区间判断,或对结果为布尔类型判断,则应使用if语句)
•循环:for、while、do...while
教材学习中的问题和解决过程
问题:书上p63位运算中示例程序:
byte number = 0;
System.out.println(~number);
显示结果为-1
解决过程:
~表示补码运算,补码运算是将所有位0变1,1变0,byte占内存1字节,number储存 的0在内存中是位00000000,经补码运算就变成11111111,这个数在计算机中用整数表示则为-1。
代码调试中的问题和解决过程
问题:我先将书上的代码看了几遍,然后试着自己编写,发现总是弄不清楚什么时候用System.out.printf,什么时候用System.out.println。
解决方法:通过上网百度,发现两者分别适用的情况:
如果输出的是字符串就用printf()好,但如果输出的是单个字符就用println()好。
例如:
int i = 1, j = 2, k = 3;
System.out.printf("%d的值 + %d的值 是 %d ", i, j, k); //如果是输出字符串用printf好
System.out.println(i + "的值 " + "+ " + j + "的值 是 " + k);
int m = 47;
System.out.printf("%d ", m);
System.out.println(m); //如果是输出单个字符用 println好
运用IDEA,我成功运行了以下4段代码:
•变量:
•运算符:
•switch条件式:
•for循环:
问题:第一次编写该代码时,漏写了语句"%d*%d=%2d"中的“2”。
解决方法:由于不清楚为什么要写成%2d,于是上网查找了资料,得到以下解释:
System.out.printf("%d*%d=%2d",x,y,z);
%d按照十进制整数的形式输出,%2d则是至少输出占有两个字符的十进制整数。
运行结果:
如果x=1,y=2,z=2时,1*2= 2(注意最后的一个2占有两个字符长度)
如果x=2,y=5,z=10时,2*5=10
其他(感悟、思考等,可选)
第一次使用IDEA,我发现用这个软件编写java程序真的很方便,很多语句只需要简写首字母便可以全部打出来。通过多看书上的代码,然后自己试着编写,并查找错误,解决问题,我感觉自己对java的认识和了解又进了一步,我认为将自己的盲点通过自学慢慢地掌握是我学习这门课最大的收获。
代码托管
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 4500行 | 30篇 | 350小时 | 能将java运用自如 |
第一周 | 150/150 | 2/2 | 15/15 | 学习了与java相关的基础知识 |
第二周 | 200/350 | 1/3 | 20/35 |
学习了java的基本语法 |