zoukankan      html  css  js  c++  java
  • 20155117王震宇 2016-2017-2 《Java程序设计》第六周学习总结

    教材学习内容总结

    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

  • 相关阅读:
    3dsmax script export/import tools
    BOBO输出插件的一些信息
    任务
    说说谷歌在线电子表格
    EditGrid在线编辑Excel文档
    如何控制,textField的宽度,
    在线文档管理平台
    雅虎的这个效果,有机会实现一下
    推荐在线电子表格EditGrid
    我的台账录入界面
  • 原文地址:https://www.cnblogs.com/ikari/p/6659878.html
Copyright © 2011-2022 走看看