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. Spring Security OAuth2 token权限隔离

    由于项目OAuth2采用了多种模式,授权码模式为第三方系统接入,密码模式用于用户登录,Client模式用于服务间调用, 所有不同的模式下的token需要用  @PreAuthorize("h ...

  2. Python全栈day21(作业针对一个文件进行查询修改删除的操作练习)

    需求,有一个配置文件test.conf内容如下 backend www1 server 1 server 2 backend www2 server 3 server 4 add [{'backend ...

  3. C#中资源文件的使用

    在程序中会用到图片,有两种方法,一种是将图片放在运行文件夹中,直接调用,另一种是将图片放入资源文件中. 方法一,一般在.exe文件同级创建文件夹,如“ico”,然后把图标放进去.在程序中代码采用相对路 ...

  4. HDU3535——AreYouBusy

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3535 题目意思:给出两个数n,T,分别表示有n个任务集合,T的总时间,对于每个任务集合有两个属性m和t ...

  5. make_ext4fs 失败

    root@fengyun-server:/home/fmake_ext4fsengyun/android/reverse_engineer/rom制作# ./make_ext4fs -l 700M - ...

  6. libxml_disable_entity_loader

    w避免加载外部实体字符. http://php.net/manual/en/function.libxml-disable-entity-loader.php libxml_disable_entit ...

  7. Chrome cookies folder

    w本地存储数据2种形式. http://superuser.com/questions/292952/chrome-cookies-folder-in-windows-7 chrome://setti ...

  8. linux mint19.1解决网易云音乐安装后打不开的问题

    安装网易云音乐: sudo dpkg -i 文件路径#文件路径可以直接把刚才下载的软件包拖进终端sudo apt install -f 修复依赖关系 安装后打不开的问题: 1.sudo gedit / ...

  9. qemu网络虚拟化之数据流向分析二

    2016-09-27 上篇文章大致介绍了qemu网络虚拟化相关的数据结构,本篇就结合qemu-kvm源代码分析下各个数据结构是如何初始化以及建立联系的. 这里还是分为三个部分: 1.Tap设备区 2. ...

  10. flask请求和应用上下文

    关于WSGI WSGI(全称Web Server Gateway Interface),是为 Python 语言定义的Web服务器和Web应用程序之间的一种简单而通用的接口,它封装了接受HTTP请求. ...