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程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...
随机推荐
- 回归JavaScript基础(三)
主题:JavaScript基本概念. 任何语言的核心必然会描述这门语言最基本的工作原理.这部分内容对我们来说,读起来很乏味,甚至会产生困意,但这部分内容却是重要的!我有幸拜读<JavaScrip ...
- 命令模式-实现undo和redo
这次实验主要是实现多次redo和undo,即程序的撤回和恢复,这里只实现加法的撤回和恢复. 程序的撤回和恢复就是由所使用的软件来记录操作步骤,可以将数据恢复到某个操作状态. 撤回这个指令很常见,Win ...
- webpack-易混淆部分的解释
原文链接: https://medium.com/@rajaraodv/webpack-the-confusing-parts-58712f8fcad9 webpack的核心哲学 1. 任何皆模块 正 ...
- JAVA 判断字符长度
/** * 判断姓名字符长度 * 字符串为空返回0:有中文返回中文字符数:无中文返回2 * @param CustomerSn * @return */ private Integer getName ...
- Windows server 安装
运行管理员CMD --先切换到安装环境目录cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 --安装服务 InstallUtil.exe D:\绝对路劲 ...
- 分别用C/C++ 和 C#实现简单的观察者模式
网上找了很多关于观察者模式的代码例子和文章,都写的比较复杂,我个人还是喜欢从易到难,今天自己参考网上资料,也写了一个简单观察者模式的例子,简单的复习了一下Observer 模式,Observer 模式 ...
- Entity Framework工具POCO Code First Generator的使用
在使用Entity Framework过程中,有时需要借助工具生成Code First的代码,而Entity Framework Reverse POCO Code First Generator是一 ...
- 剑指offer 07斐波那契数列
现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 java版本: public class Solution { public static void m ...
- eclipse缓慢了么?
我的eclipse突然变得无比缓慢,javaw.exe的cpu使用率高达85%! 可是我什么也没做啊.项目组的其他同事询问过后,也没有谁修改了eclipse的配置文件(.setting文件夹 .cl ...
- 关于RSA、公钥、私钥、加密、签名的那些概念
前言 作为一名程序员,经常会听到加密解密之类的词.而非对称加密技术,应用的非常广泛.本文不写加密技术的原理,只是希望以一个简单的类比,让大家了解非对称加密中常见词的概念,以及它的作用. 介绍 在RSA ...