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

教材学习内容总结

这星期主要学习了Java语言中的各种运算符以及基本的一些语句,除了个别地方之外大部分和以往C语言学的东西比较相似,在比较中看教材学习比较容易掌握第三章的内容,课后练习的难度也不是很大

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

  1. 在Java中,小数都默认为是double型,因此类似float a=0.1的语句就会产生编译错误,Java担心因精度不够而产生数据丢失
  2. 打印语句System.out.println()与以往C语言的打印函数printf()有所不同,printf()里面是一定需要加引号的,但是在System.out.println()中如果加了引号Java就会认为此时是需要打印普通的字符串,是不具有计算的能力的。例如System.out.println(3+2)的结果是5加上换行,但是System.out.println("3+2")的结果是3+2加上换行。这点对于刚开始接触这个打印语句的我而言有不习惯的感觉
  3. 关于条件运算符。在学习中我发现其实条件运算符相当于简化版的if-else语句,但是有一点条件运算符并不能做到:条件运算符必须要有赋值的过程,但是if-else并没有这个要求。因此在使用的时候若有赋值的过程,可以优先考虑条件运算符,这样可以简化代码,当不存在赋值的过程,则使用if-else语句
  4. 关于位运算符。之前学习C语言时也接触过位运算符,但是并不知道位运算符有什么作用,这周通过学习,我觉得位运算符在提高代码执行效率上有着很大的作用,因为它十分贴近数据在内存中存储的方式。例如,3*4其实可以写成3<<2,但这样可能会使代码的阅读性下降。但是位运算符左移和右移在提取一个变量的某几位中有很大的便利,期待之后的学习中看到位运算符更多的作用
  5. 关于异或运算符,运算规律其实很好记:相同为0,不同为1。让我觉得比较有趣的是异或运算符在交换两个数据的时候可以不使用第三个变量,因为一个数异或两次之后就还是原来的那个数,我觉得这个运算符与本专业的学习也有一丝关联,加密运算其实就是可以对一个数据进行一次异或运算,而相应的解密就是再对数据进行一次异或运算,当然我相信这种加解密的方法过于简单=_=
  6. 关于&和&&、|和||的区别。其实大部分都没什么区别,我感觉唯一的不同之处在于&&和||在某些情况下会比&和|的执行效率会更高。例如,1>3&&4>3的执行效率会比1>3&4>3要快,虽然结果都一样,但是这种情况下我想也会存在一个问题,对于表达式A&&B,如果B中存在一个赋值表达式,万一A不成立,那么B将不会被赋值,这里在实际编程过程中比较容易忽略,会以为B中完成了赋值的操作
  7. 对于3种循环语句和选择语句和以往的C语言中相应部分的学习没有太多不同的地方,直接使用以往的知识就好

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

本周的代码都比较简单,不存在太难的地方,所以并没什么特别的调试过程,但是为了熟悉IDEA软件中调试的方法,还是调试了一下

代码托管


上周考试错题总结

  1. 德雷福斯技能学习模型把技能获取分为五个阶段:新手、高级新手、胜任者、精通者、专家,其中( 新手 )不能离开详细的指令
  2. IDEA教程中有关调试有四种断点:行断点,方法(函数)断点,(条件断点)和临时断点。
  3. git log 命令来查看(提交历史)
  4. IDEA教程中IDEA的安装是通过Toolbox来安装的。(OK)

其他(感悟、思考等,可选)

对于本周的学习内容,50%以上的内容在学习C语言的过程中均有所接触,所以在自主学习的过程中并没有遇到太多的问题,但是毕竟Java和C是不一样的,很多东西自己看上去以为是明白的,但是在实际操作自己打代码的时候,照着打也会出现打错的时候,因此我觉得在学习的过程中我应该更加细心一些。其次Java毕竟是一门实践性很强的课程,主动动手敲代码也是很有必要的,在这过程中不仅可以巩固已掌握的知识,还可以发现自己存在的一些知识盲点,非常有助于学习

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 25 1 12 对IDEA、git、JDK、JVM有了更多的了解,面对学习过程中遇到的困难学会自己主动地寻找办法去解决
第二周 156/181 1/2 12/24 掌握了Java中的基本运算符和基本语句

参考资料

原文地址:https://www.cnblogs.com/rafell/p/6504865.html