教材学习内容总结

IO流的分类:

  • 根据流的数据对象来分:
    高端流:所有的内存中的流都是高端流,比如:InputStreamReader
    低端流:所有的外界设备中的流都是低端流,比如InputStream,OutputStream
    如何区分:所有的流对象的后缀中包含Reader或者Writer的都是高端流,反之,则基本上为低端流,不过也有例外,比如PrintStream就是高端流
  • 根据数据的流向来分:
    输出流:是用来写数据的,是由程序(内存)--->外界设备
    输入流:是用来读数据的,是由外界设备--->程序(内存)
    如何区分:一般来说输入流带有Input,输出流带有Output
  • 根据流数据的格式来分:
    字节流:处理声音或者图片等二进制的数据的流,比如InputStream
    字符流:处理文本数据(如txt文件)的流,比如InputStreamReader
    如何区分:可用高低端流来区分,所有的低端流都是字节流,所有的高端流都是字符流
  • 根据流数据的包装过程来分:
    原始流:在实例化流的对象的过程中,不需要传入另外一个流作为自己构造方法的参数的流,称之为原始流。
    包装流:在实例化流的对象的过程中,需要传入另外一个流作为自己构造方法发参数的流,称之为包装流。
    如何区分:所以的低端流都是原始流,所以的高端流都是包装流。

字元处理装饰器

  • 想要将位元组资源转化为对应的编码字元,可以使用InputStreamReader、OutputStreamWriter对串流资料资料包裹。
  • 在建立InputStreamReader与OutputStreamWriter时,可以指定编码,如果沒有指定编码,则以JVM启动时所获取的预设编码來作字元转换。
  • BufferedReader、BufferedWriter可对Reader、Writer提供缓冲区作用 。
    线程
  • 多线程程序即程序拥有多个流程。
  • 在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run()方法中。从main()开始的流程会由主线程执行,run()方法可以创建Thread实例来执行。启动额外线程执行指定流程,必须调用Thread实例的start()方法。
  • 新建(new Thread):当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。
  • 就绪(runnable):线程已经被启动,正在等待被分配给CPU时间片,也就是说此时线程正在就绪队列中排队等候得到CPU资源。
  • 运行(running):线程获得CPU资源正在执行任务,此时除非此线程自动放弃CPU资源或者有优先级更高的线程进入,线程将一直运行到结束。
  • 死亡(dead):当线程执行完毕或被其它线程杀死,线程就进入死亡状态,这时线程不可能再进入就绪状态等待执行。自然终止:正常运行run()方法后终止。异常终止:调用stop()方法让一个线程终止运行。
  • 堵塞(blocked):由于某种原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。正在睡眠:用sleep(long t) 方法可使线程进入睡眠方式。一个睡眠着的线程在指定的时间过去可进入就绪状态。正在等待:调用wait()方法。(调用motify()方法回到就绪状态)。被另一个线程所阻塞:调用suspend()方法。(调用resume()方法恢复)。

    教材学习中的问题和解决过程

    synchronized
    在编写教材程序时出现了arrayindexoutofboundsexception异常

    因为两个线程同时调用了add()方法,引发竞速情况。所以此时的ArrayList类是不具备线程安全的类。
    根据教材提出的方法进行了修改。



    在方法上标示synchronized,则执行方法必须取得该实例的锁定。取得锁定后,会回到Runnable的状态,等待cpu排班器排入Running状态。

代码托管

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 2/2 20/20
第二周 251/251 1/5 18/38
第三周 651/902 1/6 10/48
第四周 300/1400 1/7 10/58
第五周 696/2196 1/8 10/68
第五周 722/2918 1/9 10/78

20155117王震宇 2016-2017-2 《Java程序设计》第六周学习总结的更多相关文章

  1. 20155117王震宇 2006-2007-2 《Java程序设计》第一周学习总结

    20155117王震宇 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 尽量简单的总结一下本周学习内容 尽量不要抄书,浪费时间 看懂就过,看不懂,学习有心得的 ...

  2. 20155201 2016-2017-2 《Java程序设计》第九周学习总结

    20155201 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC全名JavaDataBaseConnecticity,是Jav ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Delphi编程中动态菜单要点归纳

      一.创建菜单并添加项目 在设计程序时,有时需要动态创建菜单, 通常使用以下的语句: PopupMenu1 := TPopupMenu.Create(Self);  Item := TMenuIte ...

  2. CnPack实用功能推荐

    已经使用CnPack好几年了,这个插件太好了,现在离开它我都不会写代码了,现在将使用心得与大家分享一下: 1.代码助手非常好用,只需要输入几个字符后,自动出现提示列表,真是懒人的福音呀. 2.代码高亮 ...

  3. selenium之批量执行测试用例

    把写好的测试用例放在指定目录下,使用discover函数扫描该目录,并根据关键字自动筛选需要执行的用例.本例使用Python3.6版本. # 遍历指定目录,批量执行测试用例 import unitte ...

  4. vander范德蒙德行列式

    https://baike.baidu.com/item/%E8%8C%83%E5%BE%B7%E8%92%99%E8%A1%8C%E5%88%97%E5%BC%8F function m=vande ...

  5. python矩阵水平镜像

    方法1: label = label.T[::-1].transpose() 方法2: label = label[:,::-1] 方法3: 使用 numpy.fliplr https://docs. ...

  6. IDEA如何刷新pom文件

    被新手问到了“IDEA如何刷新pom文件?”这个问题,想来这是一个不好意思问的常犯的错误吧. 在IDEA中,修改了pom.xml文件,添加了依赖以后,一般会弹出以下这个警告来. 点击[Import C ...

  7. 自学Linux Shell3.6-文件查看命令file cat more less tail head

    点击返回 自学Linux命令行与Shell脚本之路 3.6-文件查看命令file cat more less tail head 1.参看文件类型file 该命令用来识别文件类型,也可用来辨别一些文件 ...

  8. 自学Linux Shell13.2-选项处理(主要getopt、getopts命令)

    点击返回 自学Linux命令行与Shell脚本之路 Bash shell提供了一些不同的方法来从用户处获得数据,包括以下3中方法: 命令行参数(添加在名利后面的数据) 命令行选项(可修改命令行为的单个 ...

  9. 自学Zabbix11.3 Zabbix SNMP 常用OID列表

    点击返回:自学Zabbix之路点击返回:自学Zabbix4.0之路点击返回:自学zabbix集锦 自学Zabbix11.3 Zabbix SNMP 常用OID列表 点击获取CISCO设备OID 系统参 ...

  10. luogu4933 大师 (dp)

    记f[i][j]是以i号为结尾的.公差为j的的个数(不包括只有i的情况) 那么就有$f[i][i-i']=\sum{(f[i'][i-i']+1)}$之类的东西 最后再加个n就行啦 而且公差有可能有负 ...