20155238 2016-2017-2 《Java程序设计》第六周学习总结
教材学习内容总结
第十章
串流设计
输入串流:将数据从来源取出。
输出串流:将数据写入目的地。
输入串流代表对象为
java.io.InputStream
实例输出串流代表对象为
java.io.OutputStream
实例dump()方法接受InputStream与OutputStream实例
在不使用InputStream与OutputStream时,必须使用close()方法关闭串流
串流继承架构
FileInputStream是InputStream的子类,可以指定文件名创建实例,一旦创建文档就开启,接着就可用来读取数据。
FileOutputStream是OutputStream的子类,可以指定文件名穿件实例,一旦创建文档就开启,接着就可以用来写数据。不使用是都要使用close()关闭文档。
ByteArrayInputStream是InputStream的子类,可以指定byte数组创建实例,一旦创建就可将byte数组当作数据源进行读取。
ByteArrayOutputStream是OutputStream的子类,可以指定byte数组创建实例,一旦创建就可将byte数组当作目的地写出数据。
串流处理装饰器
为输入输出的数据做加工处理,则可使用打包器类。
常用打包器:
具备缓冲区作用:BufferedInputStream、BufferedOutputStream
数据处理转换作用:DataInputStream、DataOutputStream
对象串行化能力:ObjectInputStream、ObjectOutputStream.
字符处理类
针对字符数据的读取,Java SE提供了
java.io.Reader
类,抽象化了字符数据读入的来源。针对字符数据的写入,则提供了```java.io.Writer类,其抽象化了数据写出的目的地。
第十一章
线程
在java中,在main()以外独立设计流程,可以撰写类操作
java.long.Runnable
接口,流程的进入点是操作在run()方法中。在调用Thread实例start()方法中,基本状态为可执行(Runnable)、被阻断(Blocked)、执行中(Running)
线程生命周期
线程控制的一些方法
interrupt
sleep
join
stop(Deprecated)
resume(Deprecated)
suspend(Deprecated)
destroy(Deprecated)
线程的停止、暂停、重启要程序员设定实现条件或使用并发API,不要调用Deprecated的方法
同步:synchronized与volatile
* 方法上
* 代码段上
wait、notify、notifyAll
并行API
- Lock
- ReadWritrlock
- Condition
教材学习中的问题和解决过程
问题1:如何解决死结问题
问题1解决方案:使用
trylock()
try{
if (lockMeAnd(res)) {
System.out.printf("%s 整合 %s 的资源%n", this.name, res.name);
break;
}
}finally {
unLockMeAnd(res);
- 问题2:flags数组有什么作用,与C语言有什么区别。
- 问题2解决方案:XXXXXX
- ...
代码调试中的问题和解决过程
- 问题1:编译过程中出现乱码
- 问题1解决方案:可能是编写过程中字符编码出现错误
代码托管
上周考试错题总结
1.import java.util.*;
2.
3. Class FindStuff {
4.public static void main (String[]args) {
5, //insert code here
6. c.put ("X", 123);
7. }
8. }
分别插入到第5行,哪几行允许代码编译?
HashMap c= new HashMap();
SortedMap c= new TreeMap();
Map c = new LinkedHashMap();
- 现有:
- list是一个合法的集合引用
- getCollection()返回一个合法集合的引用
哪个是合法的?
for(Object o : getCollection())
for(lterator i=list.iterator(); i.hasNext (); )
What is the output of the following code?
class EJava {
void method() {
try {
guru();
return;
} finally {
System.out.println("finally 1");
}
}
void guru() {
System.out.println("guru");
throw new StackOverflowError();
}
public static void main(String args[]) {
EJava var = new EJava();
var.method();
}
}
答案
guru
finally 1
Exception in thread "main" java.lang.StackOverflowError
- 关于try...catch...finally结构
- 可以有多个catch
- 可以没有catch
结对及互评
评分标准
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评模板:
博客中值得学习的或问题:
- xxx
- xxx
- ...
代码中值得学习的或问题:
- xxx
- xxx
- ...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
点评过的同学博客和代码
- 本周结对学习情况
结对照片
结对学习内容
-理论知识
1、输入/输出及其架构(InputStream & OutputStream和Reader & Writer)。
2、多线程进行并发程序理解。
-课本编程实例
1、编写课本中所有串流输入、输出程序。
2、编写课本中多线程程序,了解线程的开始、等待和结束过程。
3、针对线程群组、和ReadWriteLock以及Lock进行研究和资料查找。
- 上周博客互评情况
其他(感悟、思考等,可选)
在老师的启发之下,改变了自己Java学习的方式,以往是零散式的,集中一两天的学习方法。现在能在每天学习不同的学习任务,一周之内合理的分配时间学习Java。
每天敲打书上的代码,的确能学到许多知识,也逐渐学会了Java的调试,但还是缺乏自己的动手和实际操作能力。
平时遇见问题能先自己尝试寻找资源来学习,解决不了再询问老师和同学。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/4 | 8/12 | |
第二周 | 70/80 | 2/5 | 16/28 | |
第三周 | 120/200 | 3/6 | 12/40 | |
第四周 | 300/500 | 4/7 | 20/60 | |
第五周 | 500/1000 | 5/8 | 15/75 | |
第六周 | 600/1600 | 6/8 | 15/90 | 学习了IO,线程与并行API |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:15小时
改进情况:对于java学习的时间,有了系统性的规划,并不是向以前零散或者突击性的学习。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
20155238 2016-2017-2 《Java程序设计》第六周学习总结的更多相关文章
- 20155312 2016-2017-2 《Java程序设计》第九周学习总结
20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...
- 20155213 2016-2017-2 《Java程序设计》第九周学习总结
20155213 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 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入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
- 20175209 《Java程序设计》第九周学习总结
20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...
随机推荐
- ThinkPHP执行调用存储过程添加日志
本文出至:新太潮流网络博客 //PHP代码部分 /** * [LogAdd 操作日志] * @param [string] $userid [用户的ID] * @param [string] $typ ...
- 《SQL Server 2008从入门到精通》20180627
数据库范式理论 范式理论是为了建立冗余较小结构合理的数据库所遵循的规则.关系数据库中的关系必须满足不同的范式.目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).BC ...
- Oracle GI 日志收集工具 - TFA
1.TFA的目的: TFA是个11.2版本上推出的用来收集Grid Infrastructure/RAC环境下的诊断日志的工具,它可以用非常简单的命令协助用户收集RAC里的日志,以便进一步进行诊断:T ...
- 外键应用(foreignkey)、多对多
1.创建model: 定义hv表,保存hv server infors: 定义vm表,保存vm infors: 一个vm只能对应一台hv server:一台hv server可以包含有多台vm cla ...
- [EffectiveC++]item43:学习处理模板化基类内的名称
- ZT eoe android4.2 Bluetooth记录01-结构和代码分布
android4.2 Bluetooth记录01-结构和代码分布 作者:cnhua5更新于 08月21日访问(697)评论(2) 在android4.2中,Google更换了android的蓝牙协议栈 ...
- 获取索引--------用range()和len()
a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ'] for i in range(len(a)): print(i+1,a[i])
- U-Mail邮件群发触发器功能助力营销自动化
小编在朋友圈看到的人工智能讨论越来越多,越来越多的上班族惶恐不安,担心自己的饭碗不保将被人工智能所取代,这说明智能化.自动化正成为各行业的趋势,营销也概莫能外.营销的自动化意味着将大大节省从业人员的精 ...
- React & TypeScript
之前看了一下 TypeScript 的知识,但是一直没有上手,最近开始结合 React 和 TypeScript 一起尝试了一下,感受还是很好的,所以写一下笔记. 环境配置没有参考其他东西,就是看了下 ...
- 用php代码统计数据库中符合条件的行数
$sql1 = "select count(*) from t_user where age<17"; $data1 = mysql_query($sql1); $rows1 ...