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. 《从零开始学Swift》学习笔记(Day 69)——Swift与Objective-C混合编程之语言

    原创文章,欢迎转载.转载请注明:关东升的博客 在Swift语言出现之前,开发iOS或OS X应用主要使用Objective-C语言,此外还可以使用C和C++语言,但是UI部分只能使用Objective ...

  2. zookeeper报错Will not attempt to authenticate using SASL (unknown error)

    Will not attempt to authenticate using SASL (unknown error) 转自:http://blog.csdn.net/mo_xingwang/arti ...

  3. node npm

    node.js -npm 查看npm版本号$ npm -v 全局安装npm$ npm install npm -g 安装模块$ npm install <module name> --本地 ...

  4. flask--简记

    Jinjia变量过滤器: safe 渲染值时不转义 capitalize 把值的首字母转换成大写,其他字母转换成小写 lower 把值转换成小写形式 upper 把值转换成大写形式 title 把值中 ...

  5. QQ空间发表日志的图片上传功能实现

    w间接促使了用户注意图片的顺序,进一步优化的方向的是手指触动或鼠标点击来同时进行图片的增删和调序,避免精确的数字输入. 有效code <form action="wcon/wact&q ...

  6. (转载)移动Web开发技巧汇总

    META相关 1. 添加到主屏后的标题(IOS) <meta name="apple-mobile-web-app-title" content="标题" ...

  7. window 如何枚举设备并禁用该设备和启用该设备?如何注册设备热拔插消息通知?

    目前实现的功能: 1.设备枚举 2.设置设备禁用和启用 3.注册设备热拔插消息通知 4.获取设备 vid pid 数值 需要链接的库 SetupAPI.lib DeviceManager 类如下: D ...

  8. new Option() 创建一个option标签

    //add() 方法用于向 <select> 添加一个 <option> 元素. //new Option() 创建一个option标签 school.add(new Opti ...

  9. html禁止选中文字

    简单的办法,可以直接使用CSS: div { -moz-user-select:none; -webkit-user-select:none; user-select:none; } 嗯,就酱~

  10. IDEA中打包Spark项目提示Error:(16, 48) java: -source 1.5 中不支持 lambda 表达式

    在idea中新建了一Spark的项目,在做项目的编译打包的时候,提示如下错误信息: Error:(, ) java: -source 1.5 中不支持 lambda 表达式 (请使用 -source ...