zoukankan      html  css  js  c++  java
  • 20172301 2017-2018-2 《程序设计与数据结构》第二周学习总结

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

    教材学习内容总结

    1. 字符串和表达式
    2. print和println区别 转义符号
    3. 变量和常量
    4. 基本数据类型和数据类型转换
    5. 各种运算符
    6. 交互式程序——Scanner

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

    • 问题1:为什么插入char类型可运算
    • 问题1解决方案:根据视频中的提示,编写了一个test程序,

      运行出了结果:

      结合上学期的知识,因为字符在ASCII码中都有对应的数字。根据这个也可以得出字母在ASCII码中对应的数字。
    • 问题2:逻辑运算符&&
    • 问题2解决方案:一个逻辑运算符&都迷糊糊的,结果来了两个——&&。而这个并没有别的意思,而是提高了运算的效率。减少了更多的可能。

    &&:当左边为false,右边不运算。
    &:无论左边是true还是false,都运算。

    • 问题3:求余运算中有负号怎么办?

    • 问题3解决方案:编写了一个test程序进行试验。

      试验结果如图:

      所以我们可以有一个结论:求余运算,符号看%左边的数的符号。

    • 问题4:使用赋值运算符和正常的区别?

    • 问题4解决方案:

    例如:short   s = 4;
    
           s = s + 5  ;   结果编译失败,因为5是整型。  
           s += 5 ,       结果编译成功,因为自动强行转换了数据类型。  
    
    • 问题5:为什么byte是127位而不是128位?

    • 问题5解决方案:参考资料:java中为什么byte的取值范围是-128到+127
      结合上学期知识,因为一个字节八位,最高位是符号位,负数为1,正数为0。

    • 问题6:a++ 和 ++a 区别

    • 问题6解决方案:编写了一个test程序测验

      结果如下图

      考虑到运行先后的一个问题,之后的转型问题也和这个相似。

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

    • 问题1:Scanner next和nextline 区别
    • 问题1解决方案:这个是因为别人遇到问题之后我研究的,所以并没有截图。
      参考资料:Scanner中nextLine()方法和next()方法的区别
    • 问题2:PP2.2 输出2.0和2.666666原因
      如图
    • 问题2解决方案:因为3数据类型是int,3.0的数据类型是double。 这里我们应该更加细心,关注题目中让输出的数据类型。勿因小失大。

    • 问题3:两个整型运算之后怎么得到浮点型?
    • 问题3解决方案: (1)强制转换
      (2)设置新的变量:参考资料 Java中如何将一个浮点数强制转化成整型后再输出
    • 问题4:
    • 问题4解决方案: 注意nextInt,nextDouble。字母大写。 细心!
    • 问题5:运算符错误
    • 问题5解决方案:不要像数学那样省略符号,计算机太笨了。

    代码托管

    上周考试错题总结

    • 通过引用地址直接获得存储项的能力被称为 随机存储

    顺序存取:就是存取第N个数据时,必须先访问前(N-1)个数据 (list)
    随机存取:就是存取第N个数据时,不需要访问前(N-1)个数据,直接就可以对第N个数据操作 (array)

    理解:在网上看见了一个很形象的意思,那么看题目就是直接引用地址那就是随机存储。当时对于几个选项概念不清晰。

    • 试图解决问题之前,把一个问题分解成可控制的几部分是很重要的,因为 大多数问题太复杂,以至于不能作为一个单独大型的活动来解决

    理解:解析给出了合理的解释,我们可以把活动分解,但不能分解问题。D项混淆,和题目无关。

    • Java是一个高级语言和第四代语言

    第一代:机器语言(打孔机)
    第二代:汇编语言
    第三代:高级语言,其中分为 一 、 面向过程的编程语言 (如C , BASIC,pascal) , 二 、面向对象的编程语言(如C++ , java ,c# )
    第四代:数据库编程语言,如各种数据库的SQL语言

    第三代语言

    第四代语言

    理解:我以为第四代语言就是数据库编程语言,但是实际上第四代语言是与面向对象的进一步结合,那么Java也应该是第四代语言。

    • Java程序中的主方法是由___定义的 C
      A . public static main( )
      B . public static main(String[ ] args);
      C . public static main(String[ ] args)
      D . private static main(String[ ] args)

    理解:Java的分号使用确实要注意,并不是所有语句都加分号。也不是都不能加。

    public static void main(String[] args) {;

    这个语句就可以编译。

    • The instruction: System.out.println("Hello World");这个指令最好被注释为 C
      A . 将"Hello World"打印到屏幕上
      B . 打印一条信息
      C . 用来演示输出信息
      理解:Java的注释不是像AB那样表面上的内容,而是这段代码的目的和意义。
    • 下面哪个是合法的Java标识符? A
      A . i
      B . class
      C . ilikeclass!
      D . idon'tlikeclass
      E . i-like-class
      理解:标识符符号只能用_或者$。class是Java的类名,不能做标识符。尽管“i”有点单调。
    • 程序中的一个错误导致程序输出结果是$100而不是正确答案$250,这是D
      A . a programmer error (程序错误)
      B . a syntax error (语法错误)
      C . a run-time error (运行时错误)
      D . a logical error (逻辑错误)
      E . a snafu (混乱)
      理解:在教材P28,

    只要存在编译时错误,就不会得到可执行的程序代码。
    运行时错误会导致程序异常终止。
    逻辑错误程序可以正常编译和执行,但是得到的结果不正确。

    • 下列Java命名规范中,哪个是关于“store customers”类的最佳命名?A
      A . StoreCustomer
      B . Store Customer
      C . storeCustomer
      D . STORE_CUSTOMER
      E . Store-Customer
      理解:

    Java命名约定表明,类应该以大写字母开头,多字名称应该以大写字母开头,而其余字符为小写字母。
    单词应该连接在一起而没有空格,或者与“_”字符连接。答案B和E不是合法的名称,并且使用Java命名约定,C可以作为一个变量名,D是一个常量。
    命名规则我们要保持如下习惯:
    第一,类名是由字母、数字、下划线或美元符组成,且第一个字符不能是数字。
    第二,如果用的是拉丁字母,那么名字的首字母使用大写字母。
    第三,如果多个单词复合而成,我们习惯上,每个单词的第一个字母大写。

    如何定义java的类名?

    java 类名也可以用中文 但是并不提倡。

    • Java字节码是可以直接执行的,而Java源代码则不是。 ×

    Java源代码和Java字节码都不是可执行的。两者都必须被编译或解释为机器代码。Java字节码是有用的,但是它们是独立于机器的但是半编译的代码,它允许您的Java代码通过Internet传输并在另一台计算机上执行,即使其他计算机是完全不同的类型。

    理解:高级语言必须要被编译成机器代码才能被计算机执行。

    • "Public"是一个保留字。×
      理解: Java的保留字区分大小写
      和标识符是一样的

    考试总结:第一周因为忙于代码编写,忽略了书本和教材。不应该本末倒置,还是应该多注重细节。书读百遍,手动百遍。

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

    这一周算是完成任务了,一直在敲代码,算得上一个码农了。有时候打了一晚上,很疲惫,眼睛也很累,根本没什么心情玩手机。我觉得这个日子很持续很长的一段时间。不过,打代码的时候确实是很愉快,完全察觉不到时间,尤其程序运行成功的那种感觉。但是,确实需要下很大的功夫和细心,往往因为一个分号或者大小写而来回改写好多遍。在学习中我们也会遇到很多问题,有些问题的答案完全可以交给计算机来做,我们可以通过测试程序来获取解答。这就是所说的,实践出真知吧。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 122/200 1/2 20/20
    第二周 609/500 2/4 38/38

    参考资料

  • 相关阅读:
    5月9日黑马java之java中四种权限修饰符
    MOOCjava之输入输出
    5月7日黑马java之final关键字的用法
    MOOCjava之数据库基础
    MOOCjava之线程
    毕业设计
    shiro 权限
    Spring Boot Thymeleaf
    Spring Boot文件处理
    Spring Boot Rest模板
  • 原文地址:https://www.cnblogs.com/gk0625/p/8590500.html
Copyright © 2011-2022 走看看