首页 技术 正文
技术 2022年11月21日
0 收藏 661 点赞 2,485 浏览 1643 个字

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

教材学习内容总结

1.InputStream与OutputStream:

  • 在Java中,输入串流的代表对象为java.io.InputStream实例,输出串流代表对象为java.io.OutputStream实例。
  • 取得InputStream或OutStream实例后,接下来操作输入/输出的方式都是一样的,无须理会来源或目的地的真正形式。
  • 在不使用InputStream与OutStream时,必须使用close()方法关闭串流。
  • InputStream的read()方法,每次会尝试读入byte数组长度的数据,并返回实际读入的字节,只要不是-1,就表示读取到数据。
  • OutputStream的write(指定要写出的byte数组,初始索引,数据长度)方法
  • FileInputStream是InputStream的子类,用于衔接文档以读入数据,FileOutputStream是OutputStream的子类,用于衔接文档以写出数据。
  • System.in标准输入,System.out标准输出,System.err标准错误输出串流,它是用来立即显示错误信息。
  • ObjectInputStream提供readObject()方法将数据读入为对象,ObjectOutputStream提供writeObject()方法将对象写至目的地,可以被这两个方法处理的对象,必须操作java.io.Serializable接口,这个接口并没有定义任何方法,只是作为标示之用,表示这个对象可以串行化的。
    P314程序结果截图:
    20145304 Java第六周学习报告

  • 在做对象串行化时,对象中某些数据成员不希望被写出,则可以标上transient关键字。

    2.字符处理类:

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

    3.线程:

  • 在Java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run()方法中。
  • 要启动线程执行指定流程,必须调用Thread实例的start()方法。
    P327程序结果截图:
    20145304 Java第六周学习报告

  • 撰写多线性程序的方式:将流程定义在Runnable的run()方法中或继承Thread类,重新定义run()方法。
  • 运用多线程,当某线程进入Blocked时,让另一线程排入CPU执行,避免CPU空闲下来,经常是改进效能的方式之一。
    P333程序结果截图:
    20145304 Java第六周学习报告

  • 如果A线程正在运行,流程中允许B线程加入,等到B线程执行完毕后再继续A线程流程,则可以使用join()方法完成这个需求。
    P334代码结果截图:
    20145304 Java第六周学习报告

  • 在Java中对于可见性的要求,可以使用volatile达到变量范围。
  • wait()、notify()与notifyAll是Object定义的方法,控制线程释放对象的锁定,或者通知线程参与锁定竞争。
  • 每个对象都会有个内部锁定,或称为监控锁定。被标示为synchronized的区块将会被监控,任何线性要执行synchronized区块都必须先取得指定的对象锁定。
    P371代码结果截图:
    20145304 Java第六周学习报告

20145304 Java第六周学习报告

20145304 Java第六周学习报告

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

  • 书上所讲不建议使用stop()方法,讲了一种替代方法,感觉只可以在无限循环中使用,但若不是在循环中呢,要怎么解决。

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

  • 在调试327页的代码时,结果不断输出,无法自行停止,只能手动停止。

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

通过这星期的学习,慢慢理解了之前敲得一些代码的含义,当时只是大概知道某一行代码表达的是什么意思,在学习了最近几张章节后,理解了某些语句的语法和用途,对之前的代码有了更深的理解。

学习进度条

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

代码托管情况:

20145304 Java第六周学习报告

参考资料

上一篇: div基础
下一篇: Android 推送实现
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,581
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918