您的位置:首页 > 编程语言 > Java开发

20155230 2016-2017-2《Java程序设计》第六周学习总结

2017-04-02 14:59 453 查看

20155230 2016-2017-2 《Java程序设计》第6周学习总结

教材学习内容总结

Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象。

从应用程序角度来看,如果要将数据从来源取出,可以使用输入串流,如果要将数据写入目的地,可以使用输出串流。

在来源与目的地都不知道的情况下可以设计一个通用的dump()方法,该方法接受InputStream与OutputStream实例,分别代表读取数据的来源,以及输出的目的地

InputStream、OutStream提供串流基本操作,如果想要为输入/输出的数据做加工处理,则可以使用打包器类。常用的打包器具备缓冲区作用的BufferedOutputStream、BufferedInputStream,具备数据转换处理的DataInputStream、DataOutputStream,具备对象串行化能力的ObjectInputStream、ObjectOutputStream等。

解析几个常用子类:

StringReader可以将字符串打包,当做读取来源,StringWriter可以作为写入目的地,最后toString()取得所有写入的字符组成的字符串。CharArrayReader、CharArrayWriter类似,将char数组当做读取来源以及写入目的地。

如果处理串流字节数据,将这些字节数据转换为对应的编码制度,可以使用 InputStringReader、InputStringWriter打包。

printWriter与PrintStream处理可以对OutputStream打包之外,Printwriter还可以对writer进行打包,提供print()、println()、format()等方法。

在java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run()方法中。

在java中,从main()开始的流程会由主线程执行,可以创建Thread实例来执行Runnable实例定义的run()方法。

操作Runnable接口的好处就是较有弹性,你的类还有机会继承其他类。若继承了Thread,那该类就是一种Thread,通常是为了直接利用Thread中定义的一些方法,才会继承Thread来操作。

在使用高级并行API时,Lock接口的操作对象可实现synchronized的功能。

ConcurrentHashMap是ConcurrentMap的操作类,ConcurrentNavigableMap是ConcurrentMap的子接口,其操作类为ConcurrentSkipListMap,可视为支持并行操作的TreeMap版本。

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

1、书上p233页的代码范例中的“!input.matches("\d")”是什么意思?

通过看书上对代码的解析,得到如下解释:String 的 matches() 方法中设定了"\d",这是规则表示式,表示检查字符串中的字符是不是数字,若是则 matches() 会返回true。

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

无。

代码量



错题总结

下列属于非受检异常的是哪项?

A.SQLException

B.IOException

C.NullPointerException

D.OutOfMemoryError

答案:D

异常分为受检异常与非受检异常,OutOfMemoryError属于Error为非受检异常

分别插入到第5行,哪几行允许代码编译?

A .Map c= new SortedMap();

B .HashMap c= new HashMap();

C .HashMap c= new Hashtable();

D .SortedMap c= new TreeMap();

E .ArrayList c= new ArrayList();

F . Map c = new LinkedHashMap();

答案:BDF

代码托管

结对及互评

结对搭档:20155209

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

通过这周的学习知道了java可以使多个线程并行的,cpu会在多个线程之中根据一定的规则选择进行,这两章感觉就是好多种java的类,这几周好像学习内容都是一些类、接口的运用,善用API进行查询相关接口、类的作用非常重要。还有,感觉学java就相当于是去学一门语言,就像英语、汉语一样,需要在脑海中去形成使用它的语法习惯,这样在编写代码是,就会自然而然地敲出相应的程序,然而要形成这种习惯,并熟练运用其中的各种句式、搭配还有相当长的一段路要走。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行15篇300小时
第一周0/01/11/1
第二周100/1001/25/6
第三周374/4701/312/18
第四周600/10701/419/37
第五周1001/20711/517/54
第六周394/24651/68/62
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

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

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

计划学习时间:XX小时

实际学习时间:XX小时

改进情况:

有空多看看现代软件工程 课件 软件工程师能力自我评价表

参考资料

Java学习笔记(第8版)

《Java学习笔记(第8版)》学习指导
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: