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. ios 如何对UITableView中的内容进行排序

    - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSI ...

  2. 170317、到底什么时候该使用MQ?

    一.缘起 一切脱离业务的架构设计与新技术引入都是耍流氓. 引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题. 就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决什么问 ...

  3. var ie = !-[1,], [^\x00-\xff]

    var ie = !-[1,]: 这句代码在IE9之前曾被称为世界上最短的IE判定代码.代码虽短但确包含了不少javascript基础知识在里面.在这个例子中代码执行时会先调用数组的toString( ...

  4. PAT 1026 Table Tennis (30)

    A table tennis club has N tables available to the public. The tables are numbered from 1 to N. For a ...

  5. 查看环境变量CLASSPATH, PATH ,JAVA_HOME-------->mac

    终端(命令行)操作 推荐两篇博客:http://elf8848.iteye.com/blog/1582137 http://blog.csdn.net/done58/article/details/5 ...

  6. iOS 9 配置HTTP

    <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key ...

  7. 设计模式之Factory工厂模式

    在上一章,模板模式中,我们在父类规定处理的流程,在子类中实现具体的处理.如果我们将该模式用于生成实例,便演变成了Factory模式,即工厂模式. 在Factory模式中,父类决定实例的生成方式,但并不 ...

  8. flask中current_app._get_current_object()与current_app有什么区别?

    https://segmentfault.com/q/1010000005865632/a-1020000005865704

  9. yarn的使用

    yarn 的安装 npm install -g yarn yarn -version  查看yarn是否安装成功 一.首先需要了解的命令 npm install === yarn —— install ...

  10. linux qt下 QSqlDatabase: QMYSQL driver not loaded

    出现上述问题是qt安装目录未包含mysql驱动. 解决方法如下: 1.查看系统是否存在libqsqlmysql.so find / -name libqsqlmysql.so 2.若不存在该文件则安装 ...