20145315 《Java程序设计》第六周学习总结

教材学习内容总结

第十章:输入输出

10.1.1

数据有来源与目的,衔接两者的是串流对象。

  • read()方法每次尝试读取数据,并返回实际读入的,只要不是负一,就表示读到数据。

  • write()方法,指定要写出的数组,初始索引与数据长度。

    10.1.2

  • 标准输入与输出System.in和Sestem.out,可以使用Syestem.setIn()方法,重新指定标准输入来源。在执行时可以用>将输出结果导向指定文档。
  • FileInputStream与FileOutputSteam:指定文件名创建实例,开启,然后读取,写入数据,不使用时要用close()关闭。
  • ByteArrayInputStream与ByteArrayInputStream:指定byte数组创建实例

    10.1.3

    打包器只是做一些加工处理,所以就称为装饰器。

  • BufferedInputStream与BufferedOutoutStream :提供缓存区,提高效率。
  • DateInputStream与DateOutputStream : 自动转化类型
  • objectInputStream和ObjectOutputStream:将对象整个储存下来,之后再读入还原为对象。

    10.2.1

    Reader与Writer读入或者写入字符

    10.2.2

  • InputStreamReader和OutputStreamWriter:将字节数据转换为对应的编码字符
  • BufferedReader与BuffereWriter:提供缓存区,提高效率。
  • PrintWriter

    第十一章:线程与并行API

    11.1.1

    有时候需要设计程序拥有多个流程,也就是多线程程序。类操作java.lang.Runnable接口,接入点是run();通过Thread实例来执行Runnable实例定义的run方法,启动线程必须调用Thread的start方法。

    11.1.2

    定义线程的方法:

  • extends Thread
  • implements Runnable:有弹性

    11.1.3

  • Deamon线程:如果一个Thread标示为Deamon,在所有非Deamon线程结束时,JVM自动会终止。

  • Thread基本状态图:优先权高的先执行,否则输流执行。
  • 安插线程:join方法,先完成插入的线程,再回到原来的线程。
  • 停止线程:视需求操作。

    11.1.4

    每个线程都属于某个线程组群,可以自行定义线程组群。

    11.1.5

    在竞速情况下,脱离原本应管控的条件的类为不具备线程安全的类。

  • synchronized(执行该方法必须获得该实例的锁定):在方法上加上synchronized关键字,或者在描述句上加上它。如果使用不当会造成死结。

    11.1.6

    wait(),notify(),notifyall()是object定义的方法,可以通过他们控制线程释放对象的锁定,或者通知线程参与锁定竞争。

    11.2.1

  • lock:可以lock()取得对象锁定和unlock()解除锁定。调用trylock()时,如果不能锁定并不会发生阻断,而是返回fouse,无论成功与否都要解除锁定。
  • RwadWriteLock接口:定义了读取锁定与写入锁定行为,提高效率。
  • StampedLock:用来操作乐观读取,用于读取线程多而写入线程少的情况。先判断,再考虑是否真正锁定。
  • condition:取得多个conditon实例,可以有多个等待集合,提高效率。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第六周 600/600 2/2 40/40

参考资料

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

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

    20145315 <Java程序设计>第九周学习总结 教材学习内容总结 第16章--整合数据库 16.1.1JDBC简介 应用程序通过通信协议对数据库进行指令交换,以进行对数据的的增删查找 ...

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

    20145315 <Java程序设计>第二周学习总结 教材学习内容总结 类型 类型:整数分为short,int,long形. 字节:长度为一字节. 浮点数:储存小数,float和doubl ...

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

    20145315 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 java原来以橡树为名,后来才改成java,灵感是咖啡. 作者戏称JDK为java developer ki ...

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

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

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

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

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

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

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

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  8. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  9. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

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

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

随机推荐

  1. php 关于日期的知识总结

    1.UNIX时间戳   time() echo time(); 2.UNIX时间戳转换为日期用函数: date() 一般形式:date(); 即 echo date(date('Y-m-d H:i:s ...

  2. MUI 页面跳转(传值+接收)

    官方:做web app,一个无法避开的问题就是转场动画:web是基于链接构建的,从一个页面点击链接跳转到另一个页面, 如果通过有刷新的打开方式,用户要面对一个空白的页面等待: 如果通过无刷新的方式,用 ...

  3. Linux命令行常用光标移动快捷键

    Linux 命令行快捷键 涉及在Linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令.Bang(!)命令.控制命令等.让basher更有效率. 常用 ctrl+左右键:在单词之间跳转 ct ...

  4. 【Java nio】 NonBlocking NIO

    package com.slp.nio; import org.junit.Test; import java.io.IOException; import java.net.InetSocketAd ...

  5. Excel打开csv文件乱码问题的解决办法

    excel打开csv 出现乱码怎么解决 https://jingyan.baidu.com/article/ac6a9a5e4c681b2b653eacf1.html CSV是逗号分隔值的英文缩写,通 ...

  6. linux下远程服务器批量执行命令及SFTP上传文件 -- python实现

    之前写过一个python远程执行命令的脚本,但在一个性能测试中,要将程序批量分发到不同服务器,程序无法使用,再将之前的脚本更新,加入批量上传的功能.之前脚本地址:http://www.cnblogs. ...

  7. Android软件开发之EditText 详解(八)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xys289187120.blog.51cto.com/3361352/65718 ...

  8. vitess基础镜像构建流程Centos

    以下列出了构建vitess使用的Centos镜像的简单流程,由于较早基础版本是Centos7.2的,重新构建可以基于最新的Centos版本构建 1.基础镜像拉取 #拉取官方版本 docker pull ...

  9. describe neural networks as a series of computational steps via a directed graph.

    https://www.microsoft.com/en-us/research/product/cognitive-toolkit/ https://github.com/microsoft/cnt ...

  10. python重定向sys.stdin、sys.stdout和sys.stderr

    转自:https://www.cnblogs.com/guyuyuan/p/6885448.html 标准输入.标准输出和错误输出. 标准输入:一般是键盘.stdin对象为解释器提供输入字符流,一般使 ...