zoukankan      html  css  js  c++  java
  • 20172308《程序设计与数据结构》第三周学习总结

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

    教材学习内容总结

    这一章给自己最大的感受就是,突然多了很多方法,在不同的类下面,引用的方式和方法调用有不同,容易混淆和忘记。

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

    • 问题1:对于String对象,无须显式的使用new运算符及调用构造方法来创建对象,即String *** = new String("###");。大多数情况下,使用这种简化语法:String *** = "###"
      问题就是这两种没有区别吗?

    • 问题1解决方案:在老师发布的蓝墨云班课资源中看到:显式的使用new,语句中则有两个变量,new和字符串。无显式则只有一个对象字符串。

    • 问题2:一旦创建了String,该对象的长度就不可更改,并且也不能修改对象中的任何一个字符。

    • 问题2解决方案:从百科和蓝墨云理解这句话:首先,字符串是对象。字符串最大的特点就是,一旦被初始化就不可被更改。但是,String类适用于描述字符串事物,提供方法对字符串进行操作,可以返回新的String对象,这些新对象是对原对象字符串值修改的结果。

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

    • 问题1:在用IDEA从码云更新到本地之后,编了这一章的课后习题,其中一题的调试截图如下:

      程序是可以正常运行的,但是声明变量的那一行总是显示找不到代码。

    • 问题1解决方案:我现在觉得这倒是小问题了,毕竟还能运行,但是,当我把本地push到码云之后,再从linux里pull了之后,就出现了问题2的令人绝望的操作。

    • 问题2:首先,我发现了我在bin目录下的目录chapter3里又多了一个目录chapter3。后来我把它删了,用了如图命令将class文件产生在chapter3目录里:

      于是它就自动给我在目录chapter3中产生了一个新的目录chapter3并把文件放进去。

    • 问题2解决方案:
      于是我把命令javac -d /home/joy/Homework/bin/chapter3 Eg34.java中路径的chapter3去掉了,问题是解决了,可是问题又变成它是怎么知道我要把文件放在bin目录下的哪个文件夹里的呢?
      后来我又尝试编译了一个程序(依然是去掉路径里的chapter3),结果是如图:

      它又自动产生了一个相同的文件夹并把文件放进去。不过好在是可以编译了。令人窒息的是问题3。

    • 问题3:虽然编译是有点问题,但运行是根本一头雾水。因为根本不明白,如图:

      从第一行开始,为了方便准确,我直接在存放class文件的文件夹下运行程序,而结果是“找不到或加载不了主类”。

    • 问题3解决方案:很明显相应的文件是存在的,而我也做了如上图的尝试,进到chapter2并成功运行了里面的文件。最后得出的结论是只有第三章做的程序无法运行。

    • 问题4:苦于上述问题没有得到很好的解决,于是将所做修改上传到了码云,在IDEA端pull失败,如图:

      然后再次打开第三章的程序,出现了和Linux上一样的情况,如图:

      程序在此之前还是可以运行的,现在都不行了。

    • 总结:这周的程序都是用的IDEA写的,出现的这些问题我认为都不是编程中的错误,毕竟之前是有成功运行的,那问题可能就是出现在IDEA上,相关的设置和功能还不是很清楚,相信下一周就能够得到解决,循序渐进,先在这里记录下问题。

    -【更新】以上问题都已解决,原因如图:

    路径当时多写了一级,更改之后就可以正常用了。

    代码托管


    在终于明白了文件目录src和bin怎么放之后,这个代码统计的脚本统计的结果就变少了。

    上周考试错题总结

    • 错题1:
      Consider the following statement:
      System.out.println("1 big bad wolf 8 the 3 little pigs 4 dinner 2night");
      This statement will output ________ lines of text (思考下面的语句,该语句将输出___行文本)
      A .1
      B .2
      C .3
      D .4
      E .5
      原因: 导致产生一个新行。转义序列 使回车返回(也就是说,光标移回到左边缘),但是没有开始新的行。

    • 错题2
      Of the following types, which one cannot store a numeric value? (在下列数据类型中,哪一个不能存储一个数值型数据?)
      A .int
      B .byte
      C .float
      D .char
      E .all of these can store numeric values (以上所有类型都可以存储数值型数据)
      原因:字符存储一个字符,包括字母、标点和数字。然而,存储数字“5”与存储数字5不一样。

    • 错题3:
      What is output with the statement System.out.println(x+y); if x and y are int values where x=10 and y=5? (如果x和y是int类型的数值,x=10,y=5,那么语句System.out.println(x+y);的输出是什么?)
      A .15
      B .105
      C .10 5
      D .x+y
      E .An error since neither x nor y is a String (因x和y都不是字符串而引起的一个错误)
      原因:这里的x和y是变量,存储着数值,“+”起的是加号的作用,不是连接符。

    • 错题4:
      If you want to store into the String name the value "George Bush", you would do which statement? (如果你想把"George Bush"这个值存储为字符串类型的名字,你会执行那条语句?)
      A .String name = "George Bush";
      B .String name = new String("George Bush");
      C .String name = "George" + " " + "Bush";
      D .String name = new String("George" + " " + "Bush");
      E .Any of the above would work (上述都可以完成)
      原因:有两种方法可以将字符串存储为字符串变量,通过使用“new string (string value)”构造一个新字符串,或者使用赋值语句,因此A或B都可以工作。在C和D中,字符串连接操作符+的变体。所以这四种方法都行得通。

    • 错题5:
      You cannot cast a String to be a char and you cannot cast a String which stores a number to be an int, float or double. (你不能将字符串强制转换为char类型,也不能将一个字符串强制转换为int、float或double类型。)
      A .true
      B .false
      原因:没有任何机制可以,但有方法可以执行类似的操作,并返回一个字符在一个给定的位置(charAt)或返回int。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 309/309 1/1 20/20
    第二周 269/578 1/2 18/38
    第三周 236/776 1/3 22/60

    参考资料

  • 相关阅读:
    面试题目-atof与ftoa
    数据结构-List
    数据结构-Vector
    面试题目-计算最大公约数
    数据结构-二分查找
    面试题目-用递归通过单字符输出打印多位的数字
    Linux-守护进程的实现
    面试题目-链表反转
    Linux-C程序的存储空间布局
    Linux-如何添加路由表
  • 原文地址:https://www.cnblogs.com/zhouyajie/p/8642932.html
Copyright © 2011-2022 走看看