• 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 b = (byte)(-129);```
     结果为a=-128,b=127,我不太理解运算过程
    - 问题2解决方案:我百度了一下,参考[作业帮解答](https://www.zybang.com/question/ff08650895c5d44819c4734f2b3050d9.html)
     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)编译失败
     ![](https://images2018.cnblogs.com/blog/1297055/201803/1297055-20180311013018716-657603553.jpg)
    
    - 问题2解决方案:```b[0][1] = b[1][3]```中缺少了“=”导致编译失败,有时一个小的定义错误可能会引发多行代码的问题。
    ![](https://images2018.cnblogs.com/blog/1297055/201803/1297055-20180311013042825-1204482505.jpg)
    
    - 问题3:在bin、src两个目录下设ch目录方便查看不同章节代码,但不知道该如何进行编译
    - 问题3解决方案:
      ```vi src/ch3/Example3_8.java```
       ```javac -d bin/ch3 src/ch3/Example3_8.java```
       可直接操作
       ![](https://images2018.cnblogs.com/blog/1297055/201803/1297055-20180311013352760-1295373454.jpg)
    
    - 问题4:Example2_1编译显示未结束的字符串
     ![](https://images2018.cnblogs.com/blog/1297055/201803/1297055-20180311113527498-1183869555.jpg)
    
    - 问题4解决方案:
     ```System.out.println(position+"位置上的字符是:"+(char)position);```缺少最后面的“)”导致行8、10均出现错误
    
    ##[代码托管](https://gitee.com/BESTI-IS-JAVA-2018/20165202jhs)
    ![](https://images2018.cnblogs.com/blog/1297055/201803/1297055-20180311003119555-357939904.jpg)
    ## **上周考试错题总结**
    参见补交博客《[20165202 第二周测试课下选做](http://www.cnblogs.com/jhs888/p/8537020.html)》
    
    ## **感悟与思考**
    可以说周四的考试才是真正学习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     |
  • 相关阅读:
    linux MySQL安装指南
    Ubuntu MySQL常用命令
    linux下 mysql 忘记root用户密码解决办法
    ubuntu mysql 启动命令/配置my.cnf
    Ubuntu中给mysql添加新用户并分配权限
    各种 ADSL Modem 及路由器的端口映射方法
    (转)有关SharePoint页面定制的若干细节
    获取Excel中的Sheet的名称
    获取excel表单中的数据
    如何用Excel 2007同步MOSS列表(转)
  • 原文地址:https://www.cnblogs.com/jhs888/p/8542588.html
Copyright © 2020-2023  润新知