20155323 2016-2017-2 《Java程序设计》第6周学习总结

20155323 2016-2017-2 《Java程序设计》第6周学习总结

教材学习内容总结

  • 串流:衔接数据的来源和目的地就是串流对象。
  • I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。
  • Java的IO模型设计非常优秀,它使用Decorator模式,按功能划分Stream,您可以动态装配这些Stream,以便获得您需要的功能。例如,您需要一个具有缓冲的文件输入流,则应当组合使用FileInputStream和BufferedInputStream。
  • 对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流
  • java中将输入输出抽象称为流。
  • 通过创建Thread实例来执行Runnable实例定义的> run方法可以实现多个线程。
  • 继承Thread类也可以进行多个进程,但没有Runnable的弹性好,运用Lambda表达式也可以简化程序。
  • ThreadGroup:用来管理群组中的线程,enumerate可以取得群组中的所有线程,activecount()用来取得线程的数量。
  • synchronized&&volatile:线程存取同一对象相同资源时可能会引发竞速情况。
  • Executor:HashMap、TreeMap为两个常用操作类。
  • .并行Collection:CopyOnWriteArraySet操作set接口,使用于一个很少进行写入操作,而使用迭代器频繁的情境。
  • 线程若调用get()方法进行读取操作,先取得读取锁定,这样其他线程后续也可再取得读取锁定。
  • +Condition,其中的await()、signal()、signalAll()方法可视为Object的wait()、notify()、notifyAll()方法的对应。

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

不清楚start()方法和run()方法的区别

经过查阅资料之后我明白了:只有调用了start()方法,才会表现出多线程的特性,不同线程的run()方法里面的代码交替执行。如果只是调用run()方法,那么代码还是同步执行的,必须等待一个线程的run()方法里面的代码全部执行完毕之后,另外一个线程才可以执行其run()方法里面的代码。

代码调试中的问题和解决过程

我发现自己的每个代码都出现了这个提示

代码托管

  • 代码提交过程截图:

点评过的同学博客和代码

20155326
20145231
20145209
20155202
20155302

感想

这周由于要放假,学习有些松懈,希望下个周能更加努力。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/100 1/4 10/10
第二周 100/200 1/5 10/20
第三周 100/300 1/6 10/30
第四周 300/700 1/7 10/40
第五周 400/1100 1/8 20/60
第六周 300/1400 1/9 20/80
posted @ 2017-04-02 23:05  刘威良  阅读(176)  评论(4编辑  收藏  举报