20165223 《JAVA程序设计》第二周学习总结
教材学习内容总结
第二章要点
- 标识符与关键字
- 基本数据类型
- 类型转换运算
- 输入输出数据
- 数组
第三章要点
- 运算符与表达式
- 语句概述
- if条件分支语句
- switch开关语句
- 循环语句
- break和continue语句
- 数组与for语句
教材学习中的问题和解决过程
- 标识符与关键字
- 标识符=名字:由字母、下划线、$、数字组成,长度不受限;第一个字符不能是数字字符;区分大小写;不能用关键字;不能是true、false、null
- java使用的语言:Unicode字符集
- 关键字50个(需背记):
abstract assert boolean break byte case catch char class const contiune default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while - 基本数据类型
- 逻辑类型:boolean
- true、false
- 整数类型:byte、short、int、long
- 注意每种类型的字节内存,以防溢出
整数类型 常量 变量字节内存 变量取值范围 int型 各种进制整数 4个(32位) -2^31~2^31-1 byte型 不存在 1个(8位) -128~127 short型 不存在 2个(16位) -2^15~2^15-1 long型 后缀L 8个(64位) -2^63~2^63-1 - long类型常量后必须用L
- 字符类型:char
- 不同于C:char是无符号的,且不能使用unsigned修饰所声明的char型变量
- 浮点类型:float、double
- float常量后必须要有后缀F或f
- double常量后缀D或d可以省略
-
类型转换运算
- 不包括逻辑类型
- 精度排列(从低到高):
byte short char int long float double
- 从低等级赋值给高等级变量时,系统自动转换
- 从高等级赋值给低等级变量时,要强制转换:
(类型名)要转换的值
- 整数默认为
int
型,小数默认为double
型
- 逻辑类型:boolean
-
输入输出数据
- 输入
- 创建一个Scanner对象:
Scanner reader = new Scanner(System.in)
- Scanner对象调用方法读取用户键盘输入的数据(等待):
reader.nextInt()
- 创建一个Scanner对象:
- 输出
- 换行:
System.out.println();
- 不换行:
System.out.print();
-
System.out.println();
和System.out.print();
输出串值、表达式的值,使用并置符号+
使输入能串行输出 - 与C相似的函数输出:
System.out.printf("格式控制部分",表达式1,表达式2,……,表达式n);
- 格式控制部分=格式控制符号
%d、%c、%f、%s
+普通字符
- 换行:
- 输入
-
数组
- 声明数组:
类型 [ ] 数组名;
- 创建数组:
数组名 = 类型 [整数值]
- 数组长度:
数组名.length
- 对一维数组,表示数组单元的个数;对二维数组表示二维数组中一维数组的个数
- 数组引用:数组变量中存放的值就是数组的引用。数组使用下标运算访问自己的单元。类型相同的数组一旦具有相同的引用,就具有一样的单元。
- 声明数组:
代码调试中的问题和解决过程
-
Example2_1.java
javac
错打成java
,导致无法编译编译时进错了目录,应该在主文件夹下编译,使用代码
javac -d bin src/Example2_1.java
才对。因为只有在主文件夹里java才能正确找到bin文件夹,将*.class
文件放入其中。
-
Example3_9.java
- vi编辑代码时错将
System.out.printf
打成System.out.println
,提示了如图错误: - 正确认识到第二章中关于输入输出知识点掌握的缺漏并补全:
- 格式:
System.out.printf("格式控制部分",表达式1,表达式2,……,表达式n)
- 格式控制部分=格式控制符号
%d、%c、%f、%s
+普通字符 - 普通字符原样输出,格式符号输出表达式的值
- 格式:
- vi编辑代码时错将
-
在提交代码的过程中
git commit
了错误文件- 参考了资料撤销git commit的错误文件,结合同学在蓝墨云中给出的代码帮助,成功解决了问题
-
git add .
并git commit
了错误文件要如何解决:- 先查看节点:
git log
- commit xxx
- Merge: xxx
- Author: xxx
- Date: xxx
- 找到需要的commit_id
- 接着:
git reset commit_id
- 先查看节点:
- 此外在还未
git push
的时候还有:- 回退到上一个commit节点,保留修改后的代码:
git reset commit_id
- 回退到上一个commit节点,代码退回到上一步的:
git reset –hard commit_id
- 回退到上一个commit节点,保留修改后的代码:
-
带包的代码的编译和运行
- 方法一(不推荐):
- 使用vi打开一个
*.java
文件,输入包相关代码:第一行输入package <包名>;
,之后正常编写代码 - 新建包文件夹:
mkdir <包名>
- 编译:
javac *.java
- 移动代码文件进包内:
mv *.class <包名>
- 运行:
java <包名>.<主类名>
- 使用vi打开一个
- 方法二(推荐):
- 使用vi打开一个
*.java
文件,输入包相关代码:第一行输入package <包名>;
,之后正常编写代码 - 编译到bin:
javac -d bin *.java
- 在包中运行:
java -cp bin <包名>.<主类名>
- 使用vi打开一个
- 其中方法二中
-cp
指classpath,指明路径bin
- 方法一(不推荐):
-
码云提交作业方法
- 创建docs目录:
mkdir docs
- 创建空markdown文件如“java_homework_week1.md”:
touch docs/java_homework_week1.md
- 把作业博客纳入版本控制:
git add .
,git commit -m "init docs with empty java_homework_week1.md"
- 把作业推送到码云上:
git push
- 在码云上点击docs文件夹,打开“java_homework_week1.md”,点击“编辑”就可以写作业了
- 提交说明是“拷贝作业模板”,这等价于 git commit -m "拷贝作业模板", 点击“提交到master”按钮进行作业的提交
- 将码云上写的文档同步到自己的电脑上:
git pull
- 运行一下脚本"statistics.sh",截图学习进度:
./statistics.sh
- 完成本周的学习任务,运行
git push
把本周学习成果推送到码云上
- 创建docs目录:
代码托管
详见码云代码链接:https://gitee.com/BESTI-IS-JAVA-2018/20165223cn.git
上周考试错题总结
详见博客:week2测试补交与总结
感悟与思考
这一周学习任务是第二第三章,明显较之第一周感受到了学习的进度,在抄代码的同时不断练习记忆,对知识点有了掌握。经过两周的课程已经开始逐渐适应上课的速度,也更明白了自己在课下还需要做更多的练习。本周进行的第一次测试由于我对包package相关的知识点掌握不到位以及对提交时间的错误把握导致没能按时提交第二个测试的结果,明确感受到了自己的不足,写了一篇博客week2测试补交与总结进行分析与总结,也提醒了我要更认真的听讲以及下去练习,才能在考试和课堂上游刃有余。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3000行 | 30篇 | 400小时 | |
第一周 | 178/200 | 1/2 | 20/20 | |
第二周 | 200/200 | 2/2 | 20/20 |