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)编译失败
    1297055-20180311013018716-657603553.jpg

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

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

  • 问题4:Example2_1编译显示未结束的字符串
    1297055-20180311113527498-1183869555.jpg

  • 问题4解决方案:
    System.out.println(position+"位置上的字符是:"+(char)position);缺少最后面的“)”导致行8、10均出现错误

代码托管

1297055-20180311003119555-357939904.jpg

上周考试错题总结

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

感悟与思考

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

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)
目标5000行30篇400小时
第一周24/241/415/15
第二周423/4232/614/29

转载于:https://www.cnblogs.com/jhs888/p/8542588.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值