20165202 第2周学习总结

Posted jhs888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165202 第2周学习总结相关的知识,希望对你有一定的参考价值。

20165202 2017-2018-2 《程序设计与数据结构》第2周学习总结

教材学习内容总结

Ch2

  • Java基本数据类型包括boolean、byte、short、char、int、long、float、double
    逻辑类型:boolean,赋值只能使用true和false,不可使用0和1;
  • 类型转换运算:精度由低到高排序:byte、short、char、int、long、float、double
    (类型名)要转换的值当超过变量范围时将导致精度的损失。
  • 关于Scanner 类使用:
    必须在代码开头输入import java.util.Scanner;
    新建 Scanner 变量:`Scanner xxx = new Scanner(System.in);
  • 数组名.length可得知数组中元素个数
  • 数组为引用型变量,声明数组和创建数组可以一起进行float boy[] = new float[4];
  • System.out.println(""+a)输出char型数组的引用。

Ch3

  • Java允许把不超出byte、short和char的取值范围的算术表达式的值赋给byte、short和char型变量。
  • 位运算符计算规则与上学期HDL的按位运算相仿。
  • (新概念)instanceof运算符:左面的操作元是一个对象,右面的是一个类,当左面的对象是右面的类或子类创建的对象是,运算结果为true,否则为false。
  • 2-6节关于控制语句的内容介绍与C语言相同。
  • 遍历数组:for(声明循环变量:数组的名字)

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

  • 问题1:对于新的Scanner 类不太理解
  • 问题1解决方案:结合Example2_3、2_5 、3_9,使用Scanner xxx = new Scanner(System.in);,等待键盘输入后调用reader.nextXXX()方法获取输入数据。
  • 问题2:P22例子2
    byte a = (byte)128; byte b = (byte)(-129);
    结果为a=-128,b=127,我不太理解运算过程
  • 问题2解决方案:我百度了一下,参考作业帮解答
    Java中正数用源码表示,负数用补码表示,第一位是符号位。
    所以对于128和-129,他们的编码分别是:
    0000 0000 0000 0000 0000 0000 1000 0000
    1111 1111 1111 1111 1111 1111 0111 1111。
    对于a来说,1000 0000是负数(第一位为1),它的绝对值是1000 0000即128,
    而对于b来说,0111 1111是正数,值为127。

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

(本周练习书中代码问题较少,在了解vi及javac使用后,仅个别为编译误输入错误)

  • 问题1:课本P20代码中‘ぁ‘字无法输入
  • 问题1解决方案:参考蓝墨云班课中同学给出的解答,安装日文输入法,同时该字符有大小写问题:是这个ぁ,不是这个あ。
  • 问题2:P32习题3(5)编译失败
    技术分享图片

  • 问题2解决方案:b[0][1] = b[1][3]中缺少了“=”导致编译失败,有时一个小的定义错误可能会引发多行代码的问题。
    技术分享图片

  • 问题3:在bin、src两个目录下设ch目录方便查看不同章节代码,但不知道该如何进行编译
  • 问题3解决方案:
    vi src/ch3/Example3_8.java
    javac -d bin/ch3 src/ch3/Example3_8.java
    可直接操作
    技术分享图片

代码托管

技术分享图片

上周考试错题总结

参见补交博客《20165202 第二周测试课下选做

感悟与思考

可以说周四的考试才是真正学习java的开始,在上周的学习中,我还只是简单的观看视频,把代码输入书中,以为自己掌握了所学内容。但在实际编程考试中,问题就暴露出来了:自己对于代码根本没有理解,一旦改变题目,立刻无从下手。直接导致了我在随堂测验两科都没有来得及提交,关于第一堂课老师讲的包的用法更是一知半解。所以,当天下课后我就把测试未完成的代码重新写完,并把相关内容用博客的形式补全。第一次测试改变了我的学习态度,我发现只有深入的理解与练习才是学习,本周我把所有例题代码及课后练习代码全部写了一遍,并且通过百度和问同学来理解代码含义,虽然之前的C语言学的很渣,但我相信兴趣是学习的动力,今天一天的代码量有些大,达到300多行,但是在看似枯燥的练习中我感觉自己的熟练度在提高。娄老师提到的将一周代码行数目标分散开,我认为很有道理,提前动手慢慢消化,一天完成两章内容的近400行确实较为疲惫。本周我还帮助同学重装了虚拟机,对移植VDI和ubuntu的配置、git命令的使用有了新的认识,遇到了许多问题并不断尝试解决他们。同时在敲代码的过程中,结合预备作业的vim使用学习以及Linux常用命令,我的编译速度精度都在提高,只有真正在写的过程中才会研究怎样提高效率、怎样解决问题。在完成一次次编译调试运行的过程中,最后能看到java xx的顺利运行也是一件很开心的事。娄老师所说的“做中学”我很赞成,但我更喜欢“乐中学”,如果一门学科能给你带来快乐,有了特殊的“动力”,源自热爱,学无止境!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 24/24 1/4 15/15
第二周 423/423 2/6 14/29


















以上是关于20165202 第2周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

20165202 第3周学习总结

20165202 第4周学习总结

20165202 2017-2018-2 《Java程序设计》第1周学习总结

20165202 2017-2018-2 《Java程序设计》第6周学习总结

20165202 2017-2018-2 《程序设计与数据结构》第5周学习总结

2018-2019-1 20165202 《信息安全系统设计基础》第一周学习总结