20165233 Java第七、十章学习总结

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

教材学习内容总结

ch07

  • 内部类:Java支持在一个类中声明另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类。

  • 匿名类

    • 和某类有关的匿名类就是该类的一个子类,该子类没有明显地用类声明来定义,所以称为匿名类。

    • 和某接口有关的匿名类就是实现该接口的一个类,给子类没有明显地用类声明来定义,所以称为匿名类。

  • 异常类

    • Java方法调用时可能出现异常,利用try-catch语句来处理。
  • 断言:assert关键字

ch10

  • InputStream的子类创建的对象为字节输入流,每次调取方法按顺序读取源中内容,直到末尾或流被关闭。

  • OutputStream的子类创建的对象为字节输出流,同样是按顺序写入。

  • Reader的子类创建的对象为字符输入流,同样按顺序读入。

  • Write的子类创建的对象为字符输出流,同理。

  • File类

  • 文件字节输入、输出流

  • 文件字符输入、输出流

  • 缓冲流、随机流、数组流、数据流、对象流

  • 序列化与对象克隆

  • 使用Scanner解析文件

  • 文件锁

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

  • 问题1:throwthrows的区别是什么?
  • 问题1解决方案:throw这个关键字的作用是抛出异常;throws是方法可能抛出异常的声明。总的来说,一个方法在声明时可以使用throws关键字声明要产生的若干个异常,再用相应的异常类创建对象,并使用throw关键字抛出该异常对象。
  • 问题2:序列化是什么?
  • 问题2解决方案:序列化是Java中一种特殊的文本表示,序列化就是和Serializable接口相关的东西。序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

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

  • 问题1:教材293页中的Example10_8.java的例子,import java.io.**;**的作用是什么?为什么使用**时,编译就会报错,写成*时,就能够正常编译、运行呢?

  • 问题1解决方案:这个问题暂时没有解决,没有找到原因,并且每次使用*都可以正常运行。
  • 问题2:教材284页中的Example10_3.java,Mac中找不到文本编辑器(Mac的记事本)的路径与可执行文件?
  • 问题2解决方案:在网上寻找过,但也都没有此问题的解答。

代码托管

上周考试错题总结

  • 错题1:下列关于构造方法叙述正确的是:D.带有返回值的方法一定不是构造方法。

原因:本题为多选题,漏选该选项,对于构造方法的判断条件掌握不全面。

理解情况:构造方法没有类型,没有返回值,且名字与它所在的类的名字完全相同。

  • 错题2:下列关于实例变量和类变量的说法错误的是:B.分配给不同对象的类变量占有不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的实例变量。

原因:对于实例变量与类变量的一些细节知识点掌握不熟练。

理解情况:这是对“实例变量”的描述,而非“类变量”。错选为C.创建类的对象时,类变量不再重新分配内存。

  • 错题3:以下对重载描述错误的是B.构造方法不能重载。

原因:对该知识点不太清楚。

理解情况:已掌握。

  • 错题4:下列代码的执行结果均为true.
int i = 128;
Integer i2 = 128;
Integer i3 = new Integer(128);
System.out.println(i==i2);
System.out.println(i==i3);

原因:未掌握Integer的类型。

理解情况:Integer类型的对象包含一个int类型的字段,Integer会自动拆箱为int,因此值相等。

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

本周学习内容中间跨度有些大,越过8、9章,学习第10章时,发现有没有学到过的知识点。第7章听课的时候没有那么难理解了,但是要注意到细节的地方特别多,在看程序题的时候还是有些费劲。第10章在流的这部分内容相近,也较好掌握,但是感觉文件锁等知识点难度增大了。

posted @ 2018-03-31 01:33  minchan0624  阅读(200)  评论(1编辑  收藏  举报