20155236 2016-2017-2 《Java程序设计》第六周学习总结
20155236 2016-2017-2 《Java程序设计》第六周学习总结
教材学习内容总结
- InputStream与OutputStream
从应用程序角度来看,如果要将数据从来源取出,可以使用输入串流;如果要将数据写入目的地,可以使用输出串流。在Java中,输入串流代表对象为java.io.InputStream实例,输出串流代表对象为java.io.OutputStream实例。无论数据源或目的地为何,只要设法取得InputStream或OutputStream的实例,接下来操作输入/输出的方式都是一致的,无须理会来源或目的地的真正形式。
在不使用InputStream与OutputStream时,必须使用close()方法关闭串流。由于InputStream与OutputStream操作了java.io.Closeable接口,其父接口为java.lang.AutoCloseable接口,因此可使用JDK7尝试自动关闭资源语法。
InputStream主要的子类有:
FileInputStream:把一个文件作为InputStream,实现对文件的读取操作。
ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用,可以指定byte数组创建实例,一旦创建就可将byte数组当作数据源进行读取。
BufferedInputStream:主要在内部提供缓冲区功能,操作上与InputStream没有太大差别。
DataInputStream:提供读取、写入Java基本数据类型的方法,像是读写int、double、boolean等的方法,这些方法会自动在指定的类型与字节间转换。
ObjectInputStream:提供readObject()方法将数据读入为对象,具备对象串行化能力。OutputStream主要的子类有:
FileOutputStream:把信息存入文件中,可以指定文件名创建实例,一旦创建文档就开启,接着就可以用来写出数据。
ByteArrayOutputStream:把信息存入内存中的一个缓冲区中,可以指定byte数组创建实例,一旦创建就可将byte数组当作目的地写出数据。
BufferedOutputStream:主要在内部提供缓冲区功能,操作上与OutputStream没有太大差别。
DataOutputStream:提供读取、写入Java基本数据类型的方法,像是读写int、double、boolean等的方法,这些方法会自动在指定的类型与字节间转换。
ObjectOutputStream:提供writeObject()方法将对象写至目的地,具备对象串行化能力。
- 线程与并行API
- 在java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run()方法中。如果想要为JVM加装CPU,就是创建Thread实例,要启动额外CPU就是调用Thread实例的start()方法,额外CPU执行流程的进入点,可以定义在Runnale接口的run()方法中。
- 操作Runnable接口的好处就是较有弹性,你的类还有机会继承其他类。若继承了Thread,那该类就是一种Thread,通常是为了直接利用Thread中定义的一些方法,才会继承Thread来操作。
- 在Java中实现一个线程有两种方法,第一是实现Runnable接口实现它的run()方法,第二种是继承Thread类,覆盖它的run()方法。
- •Lock(锁对象):相对与Thread模型的隐式的锁对象,Lock提供了显式的锁操作从而简化应用程序。Executors:提供了一组HighLevelAPI用来执行和管理并行任务。 ConcurrentCollections(并行集合):包含了一组支持并行处理的数据结构,大大简化了并行编程难度。AtomicVariables(原子变量):减少了同步操作并且避免数据不一致。Fork/Join框架:提供了进程操作的支持。
教材学习中的问题和解决过程
PInputStream、Reader与Writer区别,还是有些模糊
Reader:用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。
Writer:写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。
Reader和Writer都属于字符流。
InputStream属于字节流。
InputStream:是表示字节输入流的所有类的超类。
代码调试中的问题和解决过程
- 照书上的代码基本没什么问题,但是会跟同学的结果有一些出入 = =我也不知道为什么。
代码托管
上周考试错题总结
- 上周因为没有提交成功,所以比较混乱,总的来说就是对代码不熟悉对于子类和父类之间异常的处理以及程序结果没有经验,需要多多熟悉。
点评过的同学博客和代码
结对照片
结对学习内容
字符处理类中Reader与Writer继承架构
线程中Thread与Runnable;
并行API中使用Lock和ReadWriteLock- 上周博客互评情况
其他(感悟、思考等,可选)
很多东西并没有掌握得很扎实,不过可能恰恰因为这样才发现每个章节末尾的重点总结里面有好多东西,基本上这一章里面的所有东西都在这里,原来觉得一页一页看过书的效率太低,然后开始通过敲书上代码来掌握知识,但是后来发现你得先过一遍书,把书上重点啥的都看一遍再去敲代码的话很容易理解也容易上手。而且因为这周实验的缘故,我自身水平较差,不能对于本周的内容完全学习。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 10/10 | 1/1 | 10/10 | |
第二周 | 100/100 | 2/2 | 19/25 | |
第三周 | 200/278 | 1/3 | 10/26 | |
第四周 | 660/938 | 1/4 | 10/36 | |
第五周 | 1100/2100 | 1/5 | 18/54 | |
第六周 | 740/2840 | 1/6 | 23/77 |
计划学习时间:35小时
实际学习时间:23小时
改进情况:视频需要自己自觉学习,希望自己能在假期进行自我督促。
参考资料
无0.0
20155236 2016-2017-2 《Java程序设计》第六周学习总结的更多相关文章
- 20155236 2016-2017-2 《Java程序设计》第九周学习总结
20155236 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标 ...
- # 20155236 2016-2017-2 《Java程序设计》第二周学习总结
20155236 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 对于类型.变量.运算符.流程控制等等的学习.在其中包含着基本的语法元素,还有基本的逻辑语句. ...
- 20155306 2016-2017-2 《Java程序设计》第九周学习总结
20155306 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 Java语言访问数据库的一种规范,是一套API ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- (转) bicabo Visual Studio 2012自动添加注释(如版权信息等)
如何使用Visual Studio 2012给程序文件的头部自动添加如下的注释? /********************************************************** ...
- 【UI】android如何绘制一个饼图
代码下载 需求 1:实心饼图,颜色填充百分比区域 2:带区域说明 3:饼图有阴影 思路:这个其实和绘制进度条原理差不多,都是360度根据所占百分比算出绘制弧度,然后调用canvas的画弧函数. 阴影其 ...
- 正在尝试解析依赖项“MvvmLightLibs (≥ 5.2.0.0)”。 “MvvmLightLibs”已拥有为“CommonServiceLocator”定义的依赖项
正在尝试解析依赖项"MvvmLightLibs (≥ 5.2.0.0)". "MvvmLightLibs"已拥有为"CommonServiceLoca ...
- pytorch 从入门到实战
一.安装 按照 http://pytorch.org 官网上的说明来做,遇到了几个坑.记录如下: 1.用 conda 安装 pytorch 时,下载安装包非常慢,无法忍受. 解决办法:用蓝灯FQ,将蓝 ...
- autofac 在webapi中拿到当前request的scope
https://stackoverflow.com/questions/31321386/autofac-web-api-get-current-scope Unless you are usin ...
- CSS设置文本末行显示省略号...
首先设置文本标签或文字所在标签的宽度 最主要是以下三点: ①white-space:nowrap;如果是中文需要设置行末不断行 ②overflow:hidden;设置控 ...
- Docker:Err http://archive.ubuntu.com trusty InRelease & E: Unable to locate package [name] 问题
参考: Docker containers can't resolve DNS on Ubuntu 14.04 Desktop Host Unable to locate package错误解决办法 ...
- python 删除字典元素
myDict = {,,,} print(myDict) if 'a' in myDict: del myDict['a'] print(myDict)
- pairs 和 ipairs 的区别
ipairs 在迭代过程中是会直接跳过所有手动设定key值的变量.pairs不会跳过手动设置key值的变量. 实例 tab = {,,a="cd","d"} f ...
- Java回顾之网络通信
在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础是Socket,在TCP连接中,我们会使用ServerSocket和Soc ...