20155218 2016-2017-2 《Java程序设计》第6周学习总结
教材学习内容总结
- Java将输入/输出抽象化为串流,数据有来源及目的地,衔接二者的是串流对象。
- dump()方法并无限定来源或目的地的真实形式,而是依赖于抽象的InputStream、OutputStream。
- InputStream、OutStream提供串流基本操做,若是想要为输入/输出的数据作加工处理,则可使用打包器类。经常使用的打包器具有缓冲区做用的BufferedOutputStream、BufferedInputStream,具有数据转换处理的DataInputStream、DataOutputStream,具有对象串行化能力的ObjectInputStream、ObjectOutputStream等。
- 在java中,从main()开始的流程会由主线程执行,能够建立Thread实例来执行Runnable实例定义的run()方法。
- 撰写多线程程序的方式:
1.将流程定义在Runnable的run()方法中
- 2.继承Thread类,从新定义run()方法
- wait()、notify()、notifyAll()是Object定义的方法,能够经过这3个方法控制线程释放对象的锁定,或者通知线程参与锁定竞争。
- CopyOnWriteArrayList操做了List接口,这个类的实例在写入操做是,内部会创建新数组,并复制原有数组索引的参考,而后在新数组上进行写入操做,写入完成后,再将内部原参考旧数组的变量参考至新数组。
教材学习中的问题和解决过程
- 问题1:什么是IO
- 问题1解决方案: Java中I/O操做主要是指使用Java进行输入,输出操做. Java全部的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。
- 问题2:File的做用
- 问题2解决方案:在Java语言的java.io包中,由File类提供了描述文件和目录的操做与管理方法。但File类不是InputStream、OutputStream或Reader、Writer的子类,由于它不负责数据的输入输出,而专门用来管理磁盘文件与目录。做用:File类主要用于命名文件、查询文件属性和处理文件目录。
- 问题3:什么是并发
- 问题3解决方案:在操做系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。这里须要注意并发和并行是不一样的两个概念。并发是指一个时间段内同时运行,这是个区间;而并行是指在同一个时间点上运行,这个是一个点。并且并发在同一个时间点上只能是一个程序在运行。
- 问题4:进程和线程之间有什么不一样?
- 问题4解决方案:一个进程是一个独立(self contained)的运行环境,它能够被看做一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不一样的类和程序的单一进程。线程能够被称为轻量级进程。线程须要较少的资源来建立和驻留在进程中,而且能够共享进程中的资源。
代码调试中的问题和解决过程

上周考试错题总结
1.假设有自定义异常类ServiceException,那么抛出该异常的语句正确的是(B)
A .
raise ServiceException
B .
throw new ServiceException()
C .
throw ServiceException
D .
throws
2.下列哪些项是泛型的优势? (A,C)
A .
不用向下强制类型转换
B .代码容易编写
C .类型安全D .运行速度快git
3.关于try...catch...finally结构,描述正确的是哪些?(A,C)web
A .
能够有多个catch数组
B .
只能有一个catch安全
C .
能够没有catch数据结构
D .
finally必须有多线程
结对及互评
评分标准
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(连接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
- 模板中的要素齐全(加1分)
- 缺乏“教材学习中的问题和解决过程”的不加分
- 缺乏“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺乏“结对及互评”的不能打开的不加分
- 缺乏“上周考试错题总结”的不能加分
- 缺乏“进度条”的不能加分
- 缺乏“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分并发
代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的(加2分)
- 其余加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进状况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深刻的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习状况真实可信的加1分
- 扣分:
- 有抄袭的扣至0分
- 代码做弊的扣至0分
- 迟交做业的扣至0分
点评模板:
点评过的同窗博客和代码
- 本周结对学习状况
- 20155205
- 结对照片
- 结对学习内容
-复习上周所学的内容
- 经过学习视频来学习第10,11章的内容,发现有人讲解真的不同,轻松了不少。
- ...
- 上周博客互评状况
其余(感悟、思考等,可选)
感受学习的内容愈来愈难了,java占用我大量的课外时间,这周我由于写了一个数据结构的综合实验,花了很多时间,因此这周学习有点吃力,但有了视频,学习会容易一点。
目标 |
5000行 |
30篇 |
400小时 |
|
第一周 |
15/15 |
1/4 |
12/12 |
|
第二周 |
140/155 |
1/5 |
18/30 |
|
第三周 |
677/817 |
1/ 6 |
20/50 |
|
第四周 |
583/1400 |
1/7 |
20/70 |
|
第五周 |
540/1940 |
1/8 |
22/92 |
|
第六周 |
362/2302 |
1/9 |
13/105 |
|
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料