20155220 2016-2017-2 《Java程序设计》第六周学习总结
20155220 2016-2017-2 《Java程序设计》第六周学习总结
教材学习内容总结
第十章 输入输出
10.1 InputStream OutputStream
数据有来源与目的,衔接两者的是串流对象。
read()方法每次尝试读取数据,并返回实际读入的,只要不是-1,就表示读到数据。write()方法,指定要写出的数组,初始索引与数据长度。
System.in
与System.out
分别是InputStream和OutputStream的实例。可以使用Syestem.setIn()方法,重新指定标准输入来源。FileInputStream与FileOutputSteam:指定文件名创建实例,开启,然后读取,写入数据,不使用时要用close()关闭。
装饰器为输入/输出的数据做处理,例如缓冲、串行化、数据装换等。
BufferedInputStream
与BufferedOutoutStream
:提供缓存区,提高效率。DateInputStream
与DateOutputStream
:自动转化类型。ObjectInputStream
与ObjectInputStream
将数据读入或写出为对象。
10.2 字符处理类
Reader与Writer读入或者写入字符。
FileReader
、FileWriter
可以对文档作读取或写入,默认会使用操作系统默认编码。InputStreamReade
r和OutputStreamWriter
:将字节数据转换为对应的编码字符。BufferedReader
与BuffereWriter
:提供缓存区,提高效率。
第十一章 线程与并行API
11.1 线程
有时候需要设计程序拥有多个流程,也就是多线程程序。类操作
java.lang.Runnable
接口,接入点是run();通过Thread实例来执行Runnable实例定义的run方法,启动线程必须调用Thread的start方法。操作Runnable接口有弹性,还有机会继承别的类。
Deamon线程:如果一个Thread标示为Deamon,在所有非Deamon线程结束时,JVM自动会终止。
Thread基本状态图:优先权高的先执行,否则输流执行。start——>runnable——>(blocked)——>running——>dead
sleep、wait阻断等都会让线程进入blocked状态,运用多线程,避免cpu空闲下来,是改进效能的方式之一。
安插线程:join方法,先完成插入的线程,再回到原来的线程。
停止线程:最好自行操作,让线程跑完应有的流程。
每个线程都属于某个线程组群,可以自行定义线程组群。线程一旦归入某个群组,就无法更换。
线程存取同一对象相同资源时可能会引发竞速情况(RaceCondition)。在竞速情况下,脱离原本应管控的条件的类为不具备线程安全的类。
synchronized:在方法上加上
synchronized
关键字,或者在描述句上加上它。如果使用不当会造成死结。执行该方法必须获得该实例的锁定。wait(),notify(),notifyall()是object定义的方法,可以通过他们控制线程释放对象的锁定,或者通知线程参与锁定竞争。-
11.2 并行API
lock:可以lock()取得对象锁定和unlock()解除锁定。调用trylock()时,如果不能锁定并不会发生阻断,而是返回fouse,无论成功与否都要解除锁定。
RwadWriteLock接口:定义了读取锁定与写入锁定行为,提高效率。
StampedLock
:用来操作乐观读取,用于读取线程多而写入线程少的情况。先判断,再考虑是否真正锁定。Condition
:取得多个conditon实例,可以有多个等待集合,提高效率。Executor接口可以将Runnable的指定与实际如何执行分离。Future与Callable搭配使用。
教材学习中的问题和解决过程
- 问题:在一个类中向OutputStream里面写数据,而另一个类则从InputStream中读取这些数据。如何才能把OutputStream里的数据转换为InputStream里的数据呢?
解决方案:
1、使用byte数组作为缓存(必须有足够大的缓存来保存所有的数据);
2、使用管道。
代码托管
上周考试错题总结
无
点评过的同学博客和代码
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第二周 | 40/100 | 1/2 | 8/20 | |
第三周 | 100/150 | 1/3 | 18/26 | |
第四周 | 465/605 | 1/4 | 23/49 | |
第五周 | 527/1132 | 1/5 | 35/84 | |
第六周 | 1044/ 2176 | 1/6 | 60/144 |
20155220 2016-2017-2 《Java程序设计》第六周学习总结的更多相关文章
- 20155220 2016-2017-2 《Java程序设计》第九周学习总结
20155220 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity)即java数据库连接,是一种用 ...
- 20155211 2016-2017-2 《Java程序设计》第九周学习总结
20155211 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 一.JDBC入门 (一)JDBC简介 厂商在操作JDBC驱动程序时,依 ...
- 20155313 2016-2017-2 《Java程序设计》第九周学习总结
20155313 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 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入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- Hadoop版本的选择问题
自从2013年下半年开始,hadoop的版本开始了快速的更新换代,这和通信和互联网行业(ICT)的发展是密切相关的.随着移动网络的和宽带网络的覆盖以及数据传输速率的提升,线上的数据有了爆炸式的增长.这 ...
- 重磅发布丨乐维监控:全面兼容云平台,助力企业DevOps转型升级!
2019年伊始,我们迎来了乐维监控的又一重大功能更新——云平台监控,这将有效帮助企业将云上.云下数据聚合,方便统一化的监控管理与维护!未来,乐维监控每一次的产品功能及版本更新,我们都将第一时间于此发布 ...
- linux内核分析第一周学习笔记
linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
- Mininet安装
Mininet 安装 根据SDNLAB上的实验进行安装.连接地址 需要注意的是切换到用户目录下进行clone github上的源码. 1.卸载之前安装的Mininet 最好是先到目录下看是否有这些文件 ...
- Practice1小学四则运算
本次实验是做一个自动生成小学四则运算的小程序,对于我来说是检验基础的一次实验,要运用Visual C++来编写完成,“自动生成”第一印象是要用到Random()函数,“加减乘除”则应该用到switch ...
- c#代码阅读
问题1:这个程序要找的是符合什么条件的数? 问题2:这样的数存在么?符合这一条件的最小的数是什么? 问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间精确到分钟(电脑:单核CPU 4 ...
- centos 7 安装截图软件shutter
1.解决 epel-release依赖问题 ,执行命令: yum insatll epel-release 2.然后下载nux-dextop-release-0-5.el7.nux.noarch.rp ...
- java使用JMail通过QQ邮件服务器实现自动发送邮件
前言:项目开发的过程中,我们项目需要一个自动发送邮件提醒的小功能,于是简单的研究了一下java的JMail来实现自动发送邮件的功能.已被后期需要参考. 一.准备 实现的原理很简单:发送人 , 中转的邮 ...
- delphi Form属性设置 设置可实现窗体无最大化,并且不能拖大拖小
以下设置可实现窗体无最大化,并且不能拖大拖小BorderIcon 设为---biMax[False] biHelp [False]BorderStyle 设为---bsSingle 参考------- ...
- python接口自动化感悟
一个方法对应一个接口,每个方法都要有登陆 成一个独立的逻辑功能块