代码改变世界

## 20182327 2019-2020-1《数据结构与面向对象程序设计》第1周学习总结

2019-09-11 16:42  BBIowa  阅读(160)  评论(1编辑  收藏  举报

20182327 2019-2020-1《数据结构与面向对象程序设计》第1周学习总结

教材学习内容总结

本周学习了教材第一章,初步认识Java语言,了解一些Java的,保留字、标识符的命名规则和程序设计的基本步骤和思想。成功编写了自己的第一个Java小程序。

教材学习内容总结(教材第一章内容)

1.简单学习虚拟机和Java的基础知识,完成我的第一个Java程序,跟着教程一步步操作了一些基本命令。
3.java的运行编译步骤:
.java文件->编译->.class文件
.class字节码->jvm(java虚拟机,也叫JDK)解释->执行。

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

问题1:标识符args有什么意义,可以用其他标识符替换吗?
问题1解决方案:java规定main方法参数必须为字符串数组(String [ ]),args是一个字符串数组的变量名(arguments的缩写),只是一个默认名,一般习惯性照写。最后程序编多了上面这一串很快就能打完。
问题2:java中不用源代码而用字节码作为中间步骤?
问题2解决方案:我们编写的程序在不同的平台上运行前都要经过重新编译才能被执行。 而Java的宗旨是:"一次编写,到处运行"。
可运行在许多不同平台的虚拟机都拥有一个共同的功能:载入和执行同一种与平台无关的字节码(ByteCode)。 这样源代码不再必须根据不同平台翻译成0和1,而是间接翻译成字节码,储存字节码的文件再交由运行于不同平台上的虚拟机去读取执行,从而实现一次编写,到处运行的目的。在过程上方便了许多。

熟悉Java指令时出现的问题

问题1:当install时,给出下面提示:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is an other process using it?

问题1解决方案:1、kill当前进程,在某一次输入apt-get后没等进程结束就关了终端和虚拟机,导致apt一直在被占用。调出运行目录,kill带有apt的进程,再次install即可。

2、删除锁定文件

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock

代码托管

https://gitee.com/besti1823/2012_327_zhao_tianhao

上周考试错题总结

填空: Linux Bash可以使用 help. man (info) 命令查找命令的帮助信息。

填空:在Linux系统里,(root) 账户拥有整个系统至高无上的权力

填空:Linux bash中,Ctrl+a快捷键的作用是(将光标移至输入行头,相当于Home键
)
判断:Linux Bash中可以使用man pintf查看c语言中printf函数的帮助文档。(*)

填空:在Ubuntu中,使用(sudo apt-get install ddd)来安装ddd软件。

填空: 在Linux里面可以使用(chmod)命令修改文件的权限

填空: Linux里面没有C盘D盘,其文件系统的目录是由(FHS)标准规定好的,

判断: Linux Bash中,cd ~ 命令可以切换到'home'目录(ok)

判断: Linux Bash中,pwd是passwd的缩写,可以修改用户密码的。(x

判断: Linux Bash中,强行删除test文件的命令是(rm -f test).

填空: Linux Bash中,使用(tab) 进行命令补全。

填空: Linux Bash中,使用(ls)命令列出文件和目录.

填空: Linux Bash中,使用cat命令带行号查看test内容的命令是(cat -n test).

填空: Linux Bash中,使用echo查看环境变量PATH值的命令是(echo $PATH)

填空: Linux Bash中,查找home目录中昨天创建的文件的命令是(find ~ -ctime 1).

理解:文件的 Access time,atime 是在读取文件或者执行文件时更改的。

文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。

文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随
Inode 的内容更改而更改的。

判断: Linux Bash中使用tar命令把home目录打包成home.tar的命令是( tar -cf home.tar ~)

填空:Linux Bash中zip命令使(-e)参数可以创建加密压缩包。

填空: Linux Bash中(touch test)命令可以创建一个空白文件test.

填空: Linux Bash中,ls.| sort命令的功能是(显示当前目录内容并排序)

填空Linux Bash中,使grep查找当前目录下.c中main函数在那个文件中的命令是( grep main .c)

填空: linux Bash中,使用wc统计hello.c和main.c有几行代码的命令是( wc -l hello.c main.c)

判断: Linux Bash中,set/env/exprot三个命令功的等价。(X)

填空: linux bash中,把ls命令显示当前目录的结果存入ls.txt的命令输出重定向命令是(ls>ls.txt)

填空: Linux Bash中(cheat find)命令可以查find命令的使用事宜。

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)

    • 一周提交次数少于20次的不加分
  6. 其他加分:

    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评:

  • 博客中值得学习的或问题:
    同学们已经能够熟练使用markdown编辑,熟悉掌握了基本操作,没有模板也能弄得漂漂亮亮的,这一点我要多加学习。

  • 代码中值得学习的或问题:
    有的同学安装了脚本,代码看起来挺漂亮的,美观,容易检查错误。

  • 基于评分标准,我给本博客打分:14分。得分情况如下: 正确使用Markdown语法(加1分)

  • 模板中的要素齐全(加1分)

  • 教材学习中的问题和解决过程, 一个问题加1分

  • 代码调试中的问题和解决过程, 一个问题加1分

  • 周五前发博客的加1分

    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分

点评过的同学博客和代码

  • 本周结对学习情况

  • 上周博客互评情况

思考

第一次接触java,以为单单是Java,没想到有各种为了支持java的软件,进入虚拟机打开终端后的各种脚本插件等等,包括各种执行指令云云。自己挺菜的,估计把Ubuntu内存搞得一塌糊涂的。今后得紧跟老师的步伐,认真学习。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 227/200 2/2