20155315 2016-2017-2 《Java程序设计》第二周学习总结

时间:2024-01-12 21:34:32

教材学习内容总结

在教材中,有一句话叫做

伪代码是最好的注释。

一开始我不理解什么是伪代码,但在参考了百度和C语言的学习过程后,我发现伪代码的作用就相当于是解决问题前期的流程图设计,伪代码设计好了之后就可以用编程语言进行编程了。而为了保证程序的高效,条理清晰、命令明确的伪代码在编译的过程中就能帮助人们更好地理解并使用程序。

在Java编程中,整数可以用二进制(0bdddd),八进制(0ddd)、十进制(dddd)、十六进制(0Xdddd)进行表示,都是有符号的,这就要求在编译的时候要注意整数的数制和题目要求的是否一样,以免结果出错。

教材中提到

关系运算:注意不要对浮点数进行相等性运算,可以试试1.0-0.7==0.3?

我尝试之后发现结果并不等于0.3,这点在之后的实验中要尤其注意。

public class Math{
public static void main(String[] args) {
System.out.println(1.0 - 0.1);
System.out.println(1.0 - 0.2);
System.out.println(1.0 - 0.3);
System.out.println(1.0 - 0.4);
System.out.println(1.0 - 0.5);
System.out.println(1.0 - 0.6);
System.out.println(1.0 - 0.7);
System.out.println(1.0 - 0.8);
System.out.println(1.0 - 0.9);
System.out.println(1.0 - 1.0);
}
}

运行结果如下图

20155315 2016-2017-2 《Java程序设计》第二周学习总结

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

在用git提交代码的过程中,时常出现提示

远程库已经更新,但本地分支没有更新

这时候就用

git pull origin master

先将远程库的更新下载到本地,再用

git push origin master

将代码推送到码云的项目中。

要注意的是:Git中从远程的分支获取最新的版本到本地有这样2个命令:

  1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge。
git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含义:

首先从远程的origin的master主分支下载最新的版本到origin/master分支上,然后比较本地的master分支和origin/master分支的差别,最后进行合并。

上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmp
git diff tmp
git merge tmp

从远程获取最新的版本到本地的test分支上,之后再进行比较合并。

  1. git pull:相当于是从远程获取最新版本并merge到本地。
git pull origin master

上述命令其实相当于git fetch 和 git merge。

在实际使用中,git fetch更安全一些。因为在merge前,我们可以查看更新情况,然后再决定是否合并。

代码托管

首先在src文件夹中新建两个文件夹week1和week2

mkdir week1
mkdir week2

用tree命令查看子文件

20155315 2016-2017-2 《Java程序设计》第二周学习总结

用statistics脚本查看代码行数

20155315 2016-2017-2 《Java程序设计》第二周学习总结

将本周做的修改上传到码云的项目中

20155315 2016-2017-2 《Java程序设计》第二周学习总结

在码云中查看上传的代码

20155315 2016-2017-2 《Java程序设计》第二周学习总结

上周考试错题总结

第一周错题

  • 1.填空:Linux Bash中,可以使用help,man和(info)命令查找命令的帮助信息。理解情况:不常使用帮助信息,多打开帮助能少走弯路。
  • 2.填空:在 Linux 系统里, (root) 账户拥有整个系统至高无上的权利。理解情况:通常要修改管理者权限要用sudo,这里指的就是root账户。
  • 7.填空:Linux Bash中,使用(groups)命令来查看用户属于哪些用户组。理解情况:之前建新用户的时候没有用命令行,现在可以用groups打开用户组。
  • 15.填空:Linux Bash中,使用echo查看环境变量PATH值的命令是(echo $PATH理解情况:没在Linux中查看过环境变量,现在知道可以用echo $PATH查看环境变量PATH。

第二周错题

  • 3.填空:德雷福斯技能学习模型把技能获取分为五个阶段:新手、高级新手、胜任者、精通者、专家,其中( 新手 )不能离开详细的指令。理解情况:新手刚刚接触一项事物,这时候最需要他人的指导才不至于走弯路。
  • 4.编程中要写三种代码:(伪代码 ),产品代码,测试代码。理解情况:伪代码介于计算机语言和自然语言之间。
  • 10.只有通过(TCK)兼容性测试的实现,才可以使用Java这个商标。理解情况:TCK : Test Compatibility Kit 是测试兼容组件。
  • 30.填空:IDEA教程中有关调试有四种断点:行断点,方法(函数)断点,(条件断点)和临时断点。理解情况:函数断点指调试到函数结束就停止;条件断点指让调试在指定的地方停止。

思考与感悟

因为我的电脑不支持虚拟化,我一开始只能在Windows上完成老师要求的操作。后来为了练习在Linux的代码托管及对文件的修改,我在舍友的虚拟机中新建了一个用户,并在这个用户中用命令行完成了包括添加文件夹、添加文件、删除或移动文件、复制文件、编写代码等等一系列操作。之前在实验楼上的实验就让我体会到Linux与Windows系统之间的不同,但直到我自己用虚拟机完成这些操作的时候,才发现与我们传统的模式完全不一样。在寒假的学习中,我认识到键盘是Linux中最重要的零件。有了键盘,即使没有鼠标,也可以用命令行完成所需要的一切操作,这也许就是这么多人在接触Linux之后不愿在回到windos操作模式的原因了吧。就我自己而言,本身是挺习惯界面操作的,但熟悉了命令行之后,结合打字速度,感觉Linux比Windows顺畅多了。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/1 10/10 安装了JDK、IDEA和Git,写了第一个Java程序
第二周 97/117 2/3 20/30 用Linux上传代码,熟悉修改文件的命令行
  • 计划学习时间:30小时
  • 实际学习时间:25小时

参考资料