20145321 《Java程序设计》第6周学习总结

教材学习内容总结

第十章 输入输出
10.1 InputStream OutputStream
 1、数据有来源与目的,衔接两者的是串流对象。
2、read()方法每次尝试读取数据,并返回实际读入的,只要不是负一,就表示读到数据。
write()方法,指定要写出的数组,初始索引与数据长度。
3、System.in与System.out分别是InputStream和OutputStream的实例。
可以使用Syestem.setIn()方法,重新指定标准输入来源。
4、FileInputStream与FileOutputSteam:指定文件名创建实例,开启,然后读取,写入数据,不使用时要用
close()关闭。
5、ByteArrayInputStream与ByteArrayInputStream:指定byte数组创建实例。
6、装饰器为输入/输出的数据做处理,例如缓冲、串行化、数据装换等。
7、BufferedInputStream与BufferedOutoutStream:提供缓存区,提高效率。
DateInputStream与DateOutputStream:自动转化类型。
ObjectInputStream与ObjectInputStream将数据读入或写出为对象。
10.2 字符处理类
 1、Reader与Writer读入或者写入字符。
2、FileReader、FileWriter可以对文档作读取或写入,默认会使用操作系统默认编码。
3、InputStreamReader和OutputStreamWriter:将字节数据转换为对应的编码字符。
BufferedReader与BuffereWriter:提供缓存区,提高效率。
第十一章 线程与并行API
11.1 线程
 1、有时候需要设计程序拥有多个流程,也就是多线程程序。类操作java.lang.Runnable接口,接入点是run();
通过Thread实例来执行Runnable实例定义的run方法,启动线程必须调用Thread的start方法。
2、操作Runnable接口有弹性,还有机会继承别的类。
3、Deamon线程:如果一个Thread标示为Deamon,在所有非Deamon线程结束时,JVM自动会终止。
4、Thread基本状态图:优先权高的先执行,否则输流执行。
start——>runnable——>(blocked)——>running——>dead
5、sleep、wait阻断等都会让线程进入blocked状态,运用多线程,避免cpu空闲下来,是改进效能的方式之一。
6、安插线程:join方法,先完成插入的线程,再回到原来的线程。
7、停止线程:最好自行操作,让线程跑完应有的流程。
8、每个线程都属于某个线程组群,可以自行定义线程组群。
线程一旦归入某个群组,就无法更换。
9、线程存取同一对象相同资源时可能会引发竞速情况(Race Condition)。
在竞速情况下,脱离原本应管控的条件的类为不具备线程安全的类。
10、synchronized:在方法上加上synchronized关键字,或者在描述句上加上它。如果使用不当会造成死结。
执行该方法必须获得该实例的锁定。
11、wait(),notify(),notifyall()是object定义的方法,可以通过他们控制线程释放对象的锁定,或者通知
线程参与锁定竞争。
11.2 并行API
 1、lock:可以lock()取得对象锁定和unlock()解除锁定。
调用trylock()时,如果不能锁定并不会发生阻断,而是返回fouse,无论成功与否都要解除锁定。
2、RwadWriteLock接口:定义了读取锁定与写入锁定行为,提高效率。
StampedLock:用来操作乐观读取,用于读取线程多而写入线程少的情况。先判断,再考虑是否真正锁定。
Condition:取得多个conditon实例,可以有多个等待集合,提高效率。
3、Executor接口可以将Runnable的指定与实际如何执行分离。
Future与Callable搭配使用。

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

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 28篇 300小时  
第六周 200/1100 2/8 20/110  

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

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

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

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

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. 用httpclient做压力测试时Too many open files的解决办法

    在工作过程中,用httpclient去压测一个web api,发现压一小段时间就出现了Too many open files.实际上,HttpClient建立Socket时 ,post.release ...

  2. Hibernate与数据库的触发器协同工作

    Hibernate 与数据库中的触发器协同工作时, 会造成两类问题 1触发器使 Session 的缓存中的持久化对象与数据库中对应的数据不一致:触发器运行在数据库中, 它执行的操作对 Session ...

  3. [iOS微博项目 - 4.3] - 设置每条微博边框样式

    github: https://github.com/hellovoidworld/HVWWeibo A.设置每条微博边框样式 1.需求 不需要分割线 每个微博之间留有一定的间隙   2.思路 直接设 ...

  4. 【python】-- RabbitMQ 队列消息持久化、消息公平分发

    RabbitMQ 队列消息持久化 假如消息队列test里面还有消息等待消费者(consumers)去接收,但是这个时候服务器端宕机了,这个时候消息是否还在? 1.队列消息非持久化 服务端(produc ...

  5. CF#301 B:School Marks(贪心)

    B:School Marks 有n个测试,已经完成了k个,每个测试得分为a[i],接下来的分数不知道,让我们求出任何一个满足题意的即可,满足题意就是n个测试的得分总和<=x, 中位数>=y ...

  6. 如何让thrift0.9.2 在macos上面编译通过?

    为将来跨语言通信预研,选择了thrift来试试.结果在mac os上面安装遇到种种困难,不知道是我选择方法错误还是咋的,不管怎样,总算是编译过去了. 首先,我们来参考官网的安装步骤:https://t ...

  7. Linux之Redis-redis哨兵集群详解

    1.Sentinel 哨兵 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所 ...

  8. mysql 主从同步-读写分离

    主从同步与读写分离测试 一.  实验环境(主从同步) Master                   centos 7.3              192.168.138.13 Slave     ...

  9. Uboot mmc命令解析&NAND flash uboot命令详解

    转载:http://blog.csdn.net/simonjay2007/article/details/43198353 一:mmc的命令如下: 1:对mmc读操作 mmc read addr bl ...

  10. 算法总结之动态规划(DP)

    适用动态规划的特点 所解决的问题是最优化问题. 所解决的问题具有"最优子结构".可以建立一个递推关系,使得n阶段的问题,可以通过几个k<n阶段的低阶子问题的最优解来求解. 具 ...