20145331 《Java程序设计》第6周学习总结
20145331 《Java程序设计》第6周学习总结
教材学习内容总结
第十章 输入/输出
10.1.1串流
•Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象。
•若要将数据从来源取出,可以使用输入串流;如果要将数据写入目的地,可以使用输出串流。输入串流代表对象为java.in.InputStream实例,输出串流代表对象为java.io.Outputstream实例
•每次从Inputstream读入的数据,都会先置入byte数据,它的read()方法会尝试读入btye的数据,并返回读入的字节。
•在不使用InputStream与OutputStream时,必须使用close()方法关闭串流。由于InputStream与OutputStrem操作了java.io.Closeable接口,其父接口为java.lang.AutoCloseable接口,因此可使用JDK7尝试自动关闭资源语法。
10.1.2串流继承架构
•System的setIn方法指定标准输入来源,setOut指定输出目的地,标准输出可以导向至文档,只要在执行程序时使用>将输出导向至指定文档就行
•FileInputStream是InputStream的子类,主要操作InputStream的read()抽象方法;FIleOutputStream是OutputStream的子类,主要操作其write()的操作方法。
10.1.3串流处理装饰器
•装饰器只是对数据进行了一些加工处理,例如缓冲、串行化、数据装换等
•BufferedInputStream与BufferedOutputStream主要在内部提供缓冲区功能。
10.2字符处理类
•Reader抽象类:用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率或其他功能。
•Writer抽象类:写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率或其他功能。
•FileReader、FileWriter可以对文档作读取或写入。
第十一章 线程与并行API
11.1线程
•单线程程序:启动的程序从main()程序进入点开始至结束只有一个流程。
•多线程程序:一个程序拥有多个流程。
•撰写多线程程序的方式:操作Runnable接口,在run()中定义额外流程;继承Thread类,在run()中定义额外流程
•操作Runnable接口的好处就是较有弹性,类还有机会继承其他类;若继承了Thread类,那该类就是一种Thread,通常是为了直接利用Thread中定义的一些方法,才会继承Thread来操作。
•基本状态图:start——>runnable——>(blocked)——>running——>dead
•如果要停止线程,最好自行操作,让程序走完应有流程,而不是调用syop()方法
•线程存取同一对象相同资源时可能会引发竞速情况(Race Condition)
•wait()、notify()、notifyAll() 是 Object 定义的方法,可以通过这三个方法控制线程释放对象的锁定,或者通知线程参与锁定竞争
11.2并行API
•在使用高级并行API时,Lock接口的操作对象可实现synchronized的功能。
•在使用高级并行API时,Condition接口的操作对象可实现Object的wait()、notify()、notifyAll()功能。
代码调试中的问题和解决过程
Inputstream类中的常用方法:
public abstract int read( )
public int read(byte b[ ])
public int read(byte b[ ], int off, int len)
public int available( )
public long skip(long n)
public int close( )
OutputStream类中的常用方法:
public void write(byte b[ ])
public void write(byte b[ ], int off, int len)
public abstract void write(int b)
public void flush( )
public void close( )
本周代码托管截图
其他(感悟、思考等,可选)
知识越来越多,难度也越来越大了,感觉前面的内容我忘记了好多,今后在学习的过程中,要注意复习前面的内容,做到温故而知新。
刚开始学习的时候学习的重点都放在语法和技巧上,不太注意API的学习,这让我在这两周的学习中吃到了苦头,API是JAVA的重要部分,在今后的学习中不可再抱有侥幸心理,踏踏实实地去学习每一个知识点,才会有质的提高。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
| 目标 | 3500行 | 20篇 | 300小时 | |
| 第一周 | 150/150 | 1/1 | 14/14 | |
| 第二周 | 150/300 | 1/2 | 14/28 | |
| 第三周 | 100/400 | 1/3 | 14/42 | |
| 第四周 | 200/600 | 1/4 | 14/56 | |
| 第五周 | 317/917 | 1/5 | 14/70 | |
| 第六周 | 355/1272 | 2/7 | 16/86 |
参考资料
20145331 《Java程序设计》第6周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- python--常用的十进制、16进制、字符串、字节串之间的转换
进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制 ...
- MapReduce的核心编程思想
1.MapReduce的核心编程思想 2.yarn集群工作机制 3.maptask并行度与决定机制 4.maptask工作机制 5.MapReduce整体流程 6.shuffle机制 7.yarn架构
- 14.Iterate a Cursor in the mongo Shell-官方文档摘录
1 迭代游标 } ); while (myCursor.hasNext()) { print(tojson(myCursor.next())); } } ); myCursor.forEach(pri ...
- 利用wget批量下载http目录下文件
原理:下载你需要down的目录页面的index.html,可能名字不是如此!!!之后用wget下载该文件里包含的所有链接! 例如:wget -vE -rLnp -nH --tries=20 --tim ...
- C++ string and wstring convert
http://blog.sina.com.cn/s/blog_7632c6010100u1et.html http://www.codeproject.com/Tips/197097/Converti ...
- Linux命令(基础1)
一 命令的基本构成 (PS:Linux发行版本命令大概有200多个,熟练掌握个百八的就行了,其余的有个大概了解) 命令体 选项 参数(对象) ls -l /var 1.1参数:文件 文件类型: d ...
- 基于stm32CubeMX和keil5的stm32f103学习编程
0. 准备 先用st-link连接stm32核心板与PC,用于烧录 St-link Stm32 3.3V 3.3V GND GND SWDIO DIO SWCLK DCLK 再用USB串口 ...
- 1. testNG+Maven 环境搭建
一:使用的工具 : TestNG 6.9.10 Maven 3.5 IDEA 二:创建maven项目,在pom.xml添加依赖 <?xml version="1.0" enc ...
- 一种部署 Python 代码的新方法
在Nylas,我们喜欢使用Python进行开发.它的语法简单并富有表现力,拥有大量可用的开源模块和框架,而且这个社区既受欢迎又有多样性.我们的后台是纯用 Python 写的,团队也经常在 PyCon ...
- how to use greendao in android studio
http://www.arjunsk.com/android/use-greendao-android-studio/ 1.新建一个java文件MainGenerator.java: import d ...