20145311 《Java程序设计》第六周学习总结

教材学习内容总结

第十章(Input&&Output)

10.1InputStream OutputStream

10.1.1串流

-Java中的数据有来源(source)和目的地(destination),衔接两者的就是串流对象
自己设计的dump方法可以在来源和目的地不知道的情况下编写程序,方便以后调用
-无论来源和目的地实体形式是什么,只要取得InputStream和OutputStream实例后,就只是调用InputStream和OutputStream的相关方法

10.1.2串流继承架构

-System的setIn方法指定标准输入来源,setOut指定输出目的地,标准输出可以导向至文档,只要在执行程序时使用>将输出导向至指定文档就行 
-FileInputStream是InputStream的子类,一旦创建文档就开启,就可以用来读取数据FileOutputStream一旦创建就可以用来写出数据,不使用时都需要用close()来关闭。
两者在读取写入文档时都是以字节为单位
-ByteArrayInputStream与ByteArrayOutputStream可以指定byte数组创建实例,创建后将byte数组当作数据源进行读取

10.1.3串流处理装饰器(Decorator)

-装饰器知识对数据进行了一些加工处理,例如缓冲、串行化、数据装换等
-BufferInputStream与BufferOutputStream会将数据尽量地读取或者写入到缓冲区,从而提高效率 -DataInputStream与DataOutputStream提供读取写入java基本类型的方法
-ObjectInputStream与ObjectInputStream将数据读入或写出为对象

10.2字符处理类

10.2.1Reader Writer

-抽象化了数据读入和写出的目的地,会将读入的数据植入char数组中
-FileReader、FileWriter可以对文档作读取或写入,默认会使用操作系统默认编码。

10.2.2字符处理装饰器 (就是增加了一些额外的功能)

-同样,可以使用BufferReader和BufferWriter将数据进行缓冲,增加哦读取写入效率。

第十一章(Thread&&API)

11.1线程(Thread)

11.1.1

-通过创建Thread实例来执行Runnable实例定义的run方法可以实现多个线程

11.1.2

-继承Thread类也可以进行多个进程,但没有Runnable的弹性好,运用Lambda表达式也可以简化程序。

11.3线程生命周期

-Daemon:在所有的非Daemon线程结束时,JVM就会自动终止
-基本状态图:start——>runnable——>(blocked)——>running——>dead


sleep、wait阻断等都会让线程进入blocked状态,运用多线程,避免cpu空闲下来,是改进效能的方式之一。 
-可以使用join()方法来安插线程,在A执行的时候插入B,等B完成后在进行A,可以指join()的时间
-如果要停止线程,最好自行操作

11.1.4ThreadGroup

-用来管理群组中的线程,enumerate可以取得群组中的所有线程,activecount()用来取得线程的数量

11.1.5synchronized&&volatile

-线程存取同一对象相同资源时可能会引发竞速情况(Race Condition)
-被表示为synchronized的区块会被监控(monitor),需要先取得指定对象锁定后才能执行,线程因synchronized区块而进入blocked,在取得锁定之后,会先回到runnable状态,不正确地使用synchronized可能会造成效能低落或者死结(Dead Lock)
-volatile 变量上声明,表示该变量是不稳定的、易变的,并且不允许线程快取,保证单一变数的可见性(visibility)

11.1.6等待与通知

-wait()、notify()、notifyall()控制线程释放对象的锁定,wait():等待排班时间 notify():通知加入排班

11.2并行API

11.2.1Lock、Condition、ReadWriteLock

-java.util.concurrent.locks提供的相关操作类提供了一些更高级的问题 -使用lock可以提供给一些额外的功能
-如果两个方法都只是读取对象状态,并没有更改对象状态,只是读取操作的话,允许多个线程并行会对读取效率有所改善 ReadWriteLock接口就定义了读取锁定与写入锁定行为。
-使用StampedLock可以支持乐观(Optimistic Reading)读取,也就是不悲观地使用完全的读取锁定
-Condition用来搭配Lock,会提高效率

11.2.2Executor

-Executor接口可以将Runnable的指定与实际如何执行分离
-Future与Callable搭配使用

11.2.3并行Collection

-CopyOnWriteArraySet操作set接口,使用于一个很少进行写入操作,而使用迭代器频繁的情境。

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

课后练习:
ch10:AC BD AC BD A BC BD BD D ABD
ch11:A B B AB AB D B A B C

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

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

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

学习进度条

  代码行数(新增/累积 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时  
第一周 150/200 2/2 15/20  
第二周 400/500 3/4 32/35  
第三周 800/1000 4/5 55/60

第四周 1000/1300 5/6 75/80  
第五周 1700/2000 6/7 90/95  这周学得不咋样......

第六周 2500/3000 7/8 102/110 学得还是不实,但是比上周好了一些

参考资料

20145311 《Java程序设计》第六周学习总结的更多相关文章

  1. 20145311 《Java程序设计》第九周学习总结

    20145311 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1JDBC 16.1.1JDBC简介 JDBC(Java DataBase Connec ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  4. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  5. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  6. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  7. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  8. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  9. 20175209 《Java程序设计》第九周学习总结

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

  10. 20175313 张黎仙《Java程序设计》第九周学习总结

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

随机推荐

  1. 利用border制作三角形原理

    网站前端页面中,有时候会使用一些三角形,除了使用图片的方式之外,利用css的border属性也可以做出相对应的三角形.那么,利用border是如何实现三角形的制作的呢? 先看下面一个例子: CSS代码 ...

  2. 【Linux】 ftp 主动被动模式

    LNMP 搭建得服务器,在使用ftp时候,报如下错误: 经查,是ftp 主动模式被动模式问题 工具:  Xftp5   ,把被动模式勾 取消 (其他客户端可以网上查一下 相应的 被动模式转主动模式设置 ...

  3. 【CSS系列】块级元素和行内元素

    块级元素: 块级元素生成一个元素框,默认会填充其父元素的内容区,旁边不能有其他元素,换句话说,它在元素框之前和之后生成了“分隔符”. 列表项是块级额元素的一个特例,除了表现方式与其他块元素一致,列表项 ...

  4. poj2096 Collecting Bugs[期望dp]

    Collecting Bugs Time Limit: 10000MS   Memory Limit: 64000K Total Submissions: 5394   Accepted: 2670 ...

  5. 收集一些常用的CDN链接!无需下载快速使用!

    一些常用的CDN链接,可以到这里看: http://www.bootcdn.cn/ 这个网站查找资源的方式很简单,后缀加上要查找的名字即可: 例如: http://www.bootcdn.cn/boo ...

  6. 阅读笔记:Solving the “false positives” problem in fraud prediction

    刚读完一篇paper<Solving the “false positives” problem in fraud prediction>,趁热打铁,做个笔记. 文章下载链接:https: ...

  7. open live writer 安装 markdown 插件

    我自己用的是 OpenLiveWriter ,所以本篇只讲 OLW 的,WindowsLiveWriter 戳 MarkdownInWindowsLiveWriter,OpenLiveWriter 戳 ...

  8. 洛谷P3809 后缀排序【后缀数组】【模板】

    题目背景 这是一道模板题. 题目描述 读入一个长度为 nn 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置.位置编 ...

  9. ABP 样板开发框架系列

    --ABP 官网与源码 http://www.aspnetboilerplate.com/ https://github.com/aspnetboilerplate --pdf和docx 文档 htt ...

  10. Gunicorn独角兽

    1. 关于Gunicorn Gunicorn是一个开源的Python WSGI HTTP服务器,移植于Ruby的Unicorn项目的采用pre-fork模式的服务器.Gunicorn服务器可与各种We ...