20165226 2017-2018-3 《Java程序设计》第5周学习总结

教材学习内容总结

第七章 内部类与异常类

  • 匿名类创建对象:
new Bank() {
匿名类的类体
};
  • 异常类

    • 处理方式有两种:

      • 使用try..catch..finally进行捕获;
      • 在产生异常的方法声明后面写上throws 某一个Exception类型,如throws Exception,将异常抛出到外面一层去。
    • 断言进行调试
assert booleanExpression;
assert booleanExpression:messageException;

第十章 输入、输出流

  • 字节处理:两个最基本字节流的抽象父类InputStream、OutputStream,一般用他的继承类。

    • FileInputStream:

      - 构造:FileInputStream(File file)、FileInputStream(StringfileName)
      
      - 主要方法:`int read(int d)、int read(byte[] buf) 。
    • FileOutputStream:

      • 构造:FileOutputStream(File file)、FileOutputStream(StringfileName)

    注意:区别于raf的写,包括之后的流的写,只要写入不管写入多长会直接将原有的文件内容清空覆盖,不会像raf写入长度不够进行保留覆盖。

  • 处理字节的高级流:

    • BufferedInputStream 缓冲输入流

      • 构造:BufferedInputStream(fis) 方法同FileInputStream
    • BufferedOutputStream 缓冲输出流

      • 构造:BufferedOutputStream(fos) 方法同FileOutputStream
  • 字符处理:两个最基本的字符流抽象父类:Reader、Writer

    - InputStreaReader
    
       - 构造:InputStreaReader(fis,String charsetName)  其中charsetName就是编码集如:”GBK”、”UTF-8”等
    
    - OutputStreamWriter:
    
       - 构造:OutputStreamWriter(fos, String charsetName)其中charsetName就是编码即输出字符的编码形式,所以当输入读取数据时,必须和该文件写入的编码一致,尤其中文。
    
       - 主要方法:void writer(int c) 写出int的低16位、voidwriter(char[] chs)、void writer(String)、voidwriter(char[] chs,int offset, int len)

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

  • 问题一:书中P164中,看到匿名类的特点,其中有一个不是很懂,就是匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变量和static方法

  • 问题一解决方案:书上相当于是一个性质,并没有再尽心给解释说明,网上搜了一下,static类型还应该算是类的类型,应该不能访问实例的成员。

  • 问题二:看到书上P164时,想到匿名内部类和内部类有什么区别呢?

  • 问题二解决方案:经过查找资料,得出以下结论

    - 内部类:内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,内部类可以实例化,多次使用。

    - 匿名内部类:它只能使用一次,不区分static和非static。如果用到外部类的变量的话,必须是类变量或者实例变量,就是必须是类定义的变量,或者final的局部变量。匿名内部类如果是继承某个类的话是可以重写那个类的方法的,这个和普通内部类一样。
  • 问题三:在学习P166上异常类中出现了错误异常的概念,在想两者是否指一个含义?还是有不同含义。

  • 问题三解决方案:经过查找资料,得出以下结论

    - Exception(异常)是应用程序中可能的可预测、可恢复问题。异常一般是在特定环境下产生的,通常出现在代码的特定方法和操作中。在 EchoInput 类中,当试图调用 readLine 方法时,可能出现 IOException 异常。

    - Error(错误)表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。

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

  • 问题一:看到P163的内部类对应的字节码文件的名字格式是“外嵌类名$内部类名”时,想着是否需要把整个文件命名更改一下,换成RedCowForm$RedCow.java什么的。
  • 问题一解决方案:没有更改名,然后用javac编译了一下,自动产生了RedCowForm$RedCow.class的字节码文件。

  • 问题二:在运行Example7_7时,出现了以下错误

  • 问题二解决方案:仔细校对,文件名和主类名不同。

  • 问题三:在运行Example10_3的时候,发生了文件的无法运行的情况。

  • 问题三解决方案:用Windows中的idea进行代码编程再运算,路径符合。

  • 问题四:出现类名错误

  • 问题四解决方案:仔细校对后发现class拼写成calss,于是编译不通过

  • 问题五:运行Example10_5时发现运行结果解密不正确。

  • 问题五解决方案:回到代码位置,然后将+改成-,编译运行结果正确

  • 问题六:运行出现没有文件的显示

  • 问题六解决方案:新建一个文件并输入内容。然后就运行成功。

代码托管

上周考试错题总结

  • 错题一:第六题,答案是ACD,少选了D选项。
下列说法正确的是
A 成员变量的数据类型可以是Java中的任何一种数据类型。
B 成员变量和局部变量的有效范围为整个类。
C 方法返回的数据的类型可以是Java中的任何一种数据类型。
D 方法体内可以对成员变量和方法体中声明的局部变量进行操作。
  • 错题一总结:概念不清楚,以后看书应该更细致一些。

  • 错题二:正确答案: B D E ,我多选了A。

关于类的叙述,正确的是
A Java程序以类中的方法为“基本单位”。
B 每个源文件都是一个独立的编译单位。
C 与类所在源文件名称相同的类,称为主类。
D 使用“javac Example4_5.java”编译P67的Example4_5.java时,自动编译了Rect.java和Lader.java。
E 可以使用“javac *.java”编译P67该目录下的所有Java文件。
  • 错题二总结:在书P66的4.4节。A项:以类为基本单位。还是概念不清楚。

  • 错题三:正确答案: B ,我的选择是A。

下列关于参数传值的说法,错误的是
A 对象调用方法时,参数变量必须有具体的值。
B 方法如果改变参数的值,向参数传值的变量的值也会改变。
C 可以向int型变量传递一个short值。
D 如果改变参数变量所引用的实体,原变量的实体会发生同样的变化。
E 对于可变参数,如一个参数代表x,那么x.length等于x所代表的参数的个数。
  • 错题三总结:在书P68的4.5节。方法如果改变参数的值,不会影响向参数“传值”的变量的值。

  • 错题四:正确答案: A D ,我的答案是CD。

A println()方法属于java.lang.*,但由于其非常常用,编译器自动添加了java.lang.*,因此使用println()方法时不需要import。
B 如果一个文件中有class的定义、import、package,则其先后顺序为import、package、class。
C 可以使用import java.*;将类库中的所有的类都包含进去。
D java.math提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
  • 错题四总结:C项:不可以太过简单,起码要标注包的名称。

  • 错题五:正确答案: A B D ,我的答案: A B C D 。

下列关于访问权限的叙述,正确的是
A 类方法总是可以操作该类中的类变量,与访问限制符无关。
B 当在其他类中创建一个该类的对象时,该对象不能访问自己的私有变量。
C public、protected、private均可以用来修饰类。
D 如果源文件使用import语句引入另一个包的类,并创建了一个该类的对象,那么该类的这个对象不能访问自己的友好变量和友好方法。
  • 错题五总结:在书的4.12节,P95中提到不能用protected和private修饰类

结对及互评

  • 博客中值得学习的或问题:

    • 要素全面
    • 很认真细致
    • 排版简介美观
  • 代码中值得学习的或问题:
    • 代码中文件分类简洁
    • 很认真

点评过的同学博客和代码

  • 本周结对学习情况

    • 20165230

      • 结对学习内容
      • 学习如何使用jdb,在jdb上进行代码调试

其他

这周老师讲了idea上的一系列操作,如何设置断点,以及单步执行,同时以实际例子阐释了伪代码、产品和测试代码。其中强调了equals的用法。对于这些知识点我目前没有完全掌握,课后一定得多看再进一步实验体会程序的编译运行等操作。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第四周 1105/1300 1/2 30/90
第五周 1229/1300 1/2 20/90

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:30小时

  • 实际学习时间:18小时

  • 改进情况:

(有空多看看现代软件工程 课件

软件工程师能力自我评价表
)

参考资料

20165226 2017-2018-3 《Java程序设计》第5学习总结的更多相关文章

  1. 《Java程序设计》第二学习总结

    <Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...

  2. 20155318 2016-2017-2 《Java程序设计》第九学习总结

    20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...

  3. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  4. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  5. 20145120黄玄曦 《java程序设计》 寒假学习总结

    1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...

  6. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  7. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  8. Java程序设计第四周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...

  9. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  10. 2017.2.21 Java中正则表达式的学习及示例

    学习网站:菜鸟教程 http://www.runoob.com/java/java-regular-expressions.html 1 正则表达式的基本使用 (1)类 正则表达式并不仅限于某一种语言 ...

随机推荐

  1. Caused by: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWo

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  2. Windows gsl runtime error的解决方案

    经过两天多的奋战,终于把GLAD源码集成进来了. 在编译.链接都正确,程序开始跑之后,又出了一个让人很无奈的runtime error, 就在 /* Initialize minimizer */ T ...

  3. OpenCV实现图像上添加汉字 转

    <span style="font-size:18px;">void GetStringSize(HDC hDC, const char* str, int* w, i ...

  4. ASP.NET VS2013 Office 转 PDF

    本文适用于VS2013 项目中的Word转换为PDF.Excel转换为PDF.PPT转换为PDF 0.一种更加简单方便的方法 1.本页所用的方法在本机测试时基本不会出现问题,只是偶尔PPT转PDF失败 ...

  5. 洛谷P3434 [POI2006]KRA-The Disks(线段树)

    洛谷题目传送门 \(O(n)\)的正解算法对我这个小蒟蒻真的还有点思维难度.洛谷题解里都讲得很好. 考试的时候一看到300000就直接去想各种带log的做法了,反正不怕T...... 我永远只会有最直 ...

  6. 【BZOJ4003】【JLOI2015】城池攻占(左偏树)

    题面 题目描述 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池.这 n 个城池用 1 到 n 的整数表示.除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其中 fi ...

  7. [Luogu3455][POI2007]ZAP-Queries

    BZOJ(权限题) Luogu 题目描述 Byteasar the Cryptographer works on breaking the code of BSA (Byteotian Securit ...

  8. Bzoj2134:单选错位

    题面 Bzoj Sol 第\(i\)道题选对的概率就是\(\frac{min(a[i-1], a[i])}{a[i]*a[i-1]}\) # include <bits/stdc++.h> ...

  9. 自言自语WEB前端面试题(一)

    刚刚得到通知,明天可能要放半天假,开心的像个200斤的傻子 我怕真是个傻子,是后天 今天的我是依旧痛经的我 于是我又来写博客了 原来,博客竟是痛经良药 接下来请看题,此题,0难度,基本不需要动脑子 J ...

  10. python 时间模块time,datetime详细介绍

    模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践 ...