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

教材学习内容总结

第十章 输入/输出

数据流

  1. I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出。
  2. Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象.如果要将数据从来源取出,可以使用输入传流,如果要将数据写入目的地,可以使用输出串流。
  3. 在java中,输入串流代表对象为java.io.InputStream实例,输出串流代表对象为java.io.OutStream实例。

InputStream与OutputStream

  • InputStream不关心数据源来自何种设备(键盘,文件,网络);
    OutputStream不关心数据的目的是何种设备(键盘,文件,网络)

  • 提供串流基本操作,如果想要为输入/输出的数据做加工处理,则可以使用打包器类。

  • 子类一: FileInputStream,FileOutputStream。适用于文件的创建和读写。这两个子类在不使用时都要用close()关闭文档。

  • 子类二:ByteArryInputStream,ByteArryOutputStream。指定byte数组创建实例,一旦创建就可将byte数组当做数据源进行读写。

    Reader与Writer

  1. 字符数据的读取:java.io.Reader类,其抽象化了字符数据读入的来源;字符数据的写入:java.io.Writer类。其抽象化了数据写出的目的地。

第十一章 线程与并行API线程

线程

  • 单线程:
    启动的程序从main()程序进入点开始至结束只有一个流程。

  • 多线程:要设计程序可以拥有多个程序。即在main以外独立设计流程。

实现多线程

  1. 撰写类操作**java.lang.Runnable接口。操作进入点:run();
  2. 创建Thread实例来执行Runnable实例定义的run()方法,启动线程执行指定的线程,调用Thread实例的start()方法。
  3. 继承Thread类。

并行API

使用Thread建立多线程程序,必须亲自处理synchornized、对象锁定、wait()、notify()、notifyAll()等细节,如果需要的是线程池、读写解锁高等级操作,从JDK5之后提供了java.util.concurrent,可基于其中的API建立更稳固的并行应用程序。
并行API可以分为以下几个类.
1.Lock、ReadWriter与Condition
2.使用Executor
3.并行Collection

Lock、ReadWriteLock

  • lock接口主要操作类之一为ReentrantLock,可以达到synchronized的作用。

  • ReadWriteLock接口定义了读取锁定与写入锁定行为,可以使用readLock()、writeLock()方法返回Lock操作对象。
  • StampedLock类可支持了乐观读取操作。也就是若读取线程很多,写入线程很少的情况下,你可以乐观地认为,写入与读取同时发生的机会很少,因此不悲观的使用哇暖的读取锁定,程序可以查看数据读取之后,是否遭到写入线程的变更,再采取后续的措施。

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

如上图所示,用红线标注的地方是我习惯性的删减代码所导致的错误,将鼠标光标移动到该错误的位置显示如下图:

说是一定要用数组的形式定义,我仔细看了看代码,想这可能是由于代码中下面这句代码的原因。

boolean sleep=flags[(int)((Math.random()*10)%2)];

于是我就直接将代码修改改成这样:private boolean flags[]={};

结果是没有兔子的身影:

于是利用刚学的断点调试程序发现flags的值是null:

终于经过了认真排查有了正确结果显示:

如果再运行一次会出现不一样的结果:

本周代码托管截图

其他(感悟、思考等,可选)

本周在经过一次试验后,我觉得对于java的运行环境有新的了解,对于代码调试什么的有可以熟练的运用对于我将来的自己编代码有了很大的用处。而且本周还解决了一直对于java的包,类,项目的关系的理解,受益颇深。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 30篇 400小时
第一周 100/100 1/1 20/20
第二周 200/300 1/2 30/50
第三周 300/600 1/3 28/78
第四周 300/900 1/4 20/98
第五周 300/900 1/5 30/128
第六周 300/1200 2/6 32/ 160

参考资料

  • Java学习笔记(第8版)
  • 《Java学习笔记(第8版)》学习指导
  • ...

转载于:https://www.cnblogs.com/yayaer/p/5376320.html

20145204 《Java程序设计》第6周学习总结相关推荐

  1. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

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

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  3. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

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

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

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

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  6. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

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

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  8. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

  9. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  10. 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结

    20162329 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机 ...

最新文章

  1. LTE网元间控制面协议
  2. 【渝粤题库】国家开放大学2021春3962金融营销基础题目
  3. Linux内核奔溃分析
  4. qt显示rgba8888 如何改 frame_Qt开源作品17-IP地址输入控件
  5. flex 下对齐_Flex 布局示例
  6. python多版本控制操作方法
  7. SpringBoot 精通系列-创建SpringBoot的入门项目
  8. 填充 孔洞_防火门或防火窗与墙洞口的间隙,填充材料的选择
  9. python模块 包 文件_Python临时文件模块
  10. 深度学习界明星:生成对抗网络与Improving GAN
  11. 题解 洛谷 P1580 【yyy loves Easter_Egg I】
  12. 并发相关随笔(持续更新)
  13. c语言设计数字增量pi控制器,PI控制器的工作原理是什么?
  14. 隔行插入行、隔行标示颜色,#E灵 #Excel插件
  15. stm32-DHT11原理及代码解读
  16. 小王的研发日记-自动对焦(硬件与计算机通信)
  17. 理解CMMI 3级过程域非常好的例子
  18. module.exports 与 exports.xxx 的区别
  19. 基于流向算法的WSN覆盖优化
  20. 衍生品市场 Chap1-3 学习笔记

热门文章

  1. IO多路复用之select篇
  2. 全局描述符表(GDT)——《x86汇编语言:从实模式到保护模式》读书笔记09
  3. 数据库连接池技术--c3p0
  4. 总结Java访问权限
  5. Android7.1 Presentation双屏异显原理分析
  6. 从比特币脚本引擎到以太坊虚拟机
  7. Android热更新方案Robust
  8. 【问链财经-区块链基础知识系列】 第四十课 港版支付宝的区块链跨境汇款与Ripple、Circle大不同
  9. anasys hpc集群_这可能是最简单的并行方案,如何基于 AWS ParallelCluster 运行 ANSYS Fluent...
  10. python post请求_python发送http的post请求