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

教材学习内容总结

1.数据依靠串流在目的地与来源地之间传输,无论来去如何,只要取得InputStream或OutputStream的实例,其余操作都是一致的.

2.数据传输时即使不知道来去也可传输,依靠通用的dump()方法.结束时用close()方法关闭串流.

3.InputStream/OutStream < java.ic.Closeable < java.lang.AutoCloseable

4.读入需要read(),读取需要write().

例:从网站中读取某个网页并另存为文档:

package cc.openhome

import java.io.*;
import java.net.URL; public class Download {
public static void main(String[] args) throws TOException {
URL url = new URL(args[0]);
InputStream src = url.openStream();
OutputStream dest = new FileOutputStream(args[1]);
TO.dump(src, dest);
}
}

5.串流继承架构 脑中要有详细的书中图片的印象.

6.打包器类可以为输入和输出的数据做加工处理,顺序是要输出前加工再输出,以及在已经读取之后进行加工.

7.在输出和读取时,可充分利用缓冲区来提高效率.

8.Reader()用来读取字符数据, Writer()用来输出字符数据.掌握Reader(),Writer()常用类继承架构!

9.多线程程序是指拥有多个流程的程序.

10.JAVA中main()以外的独立流程是从run()后开始进行的.通过创建Thread实例来执行run方法.除此之外,还可以通过继承Thread类来重新定义run方法.两者相比,第一种更有弹性.

new TortoiseThread(10).start();
new HareThread(10).start();

(继承Thread类重新定义run方法.)

11.使用setDaemon()来设定一个线程是否为Dacmon线程.

12.线程在那个群组中产生就会归入哪个线程群组,当然也可以通过指定来自定义,但一旦归入某个群组就无法再更换!

13.线程完成run()方法后就会进入Dead,进入(或者已经调用过start()方法)的线程,不可以再次调用start()方法,否则会抛出错误。

13.尽可能让线程跑完自身流程,而不用stop来强制跳出.同理,线程的暂停\重启也要视情况使用,不可滥用.

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

本周学习内容中有很多需要牢记的规则细节,也碰到了不熟悉的名词概念,通过教材上的资料网址,我了解到纯文本文档是指只包含纯文字的文件,这些文字没有任何格式.编码是指将一种信息从这种格式转换到另一种格式的过程.

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

通过看书我了解到如果在join()中指定时间,则可在时间过后自觉跳出B流程继续执行A流程,我觉得这个是在我们日常生活中利用率较高的一种方法,引起了我的兴趣,所以我上网找了一些优秀的代码,在此记录一下:

public class TimeoutThread extends Thread{
  /**
  * 计时器超时时间
  */
  private long timeout;
  /**
  * 计时是否被取消
  */
  private boolean isCanceled = false;
  /**
  * 当计时器超时时抛出的异常
  */
  private TimeoutException timeoutException;
  /**
  * 构造器
  * @param timeout 指定超时的时间
  */
  public TimeoutThread(long timeout,TimeoutException timeoutErr) {
  super();
  this.timeout = timeout;
  this.timeoutException = timeoutErr;
  //设置本线程为守护线程   this.setDaemon(true);
  }
  /**
  * 取消计时
  */
  public synchronized void cancel()
  {
  isCanceled = true;
  }
  /**
  * 启动超时计时器
  */
  public void run()
  {
  try {
  Thread.sleep(timeout);
  if(!isCanceled)
  throw timeoutException;
  } catch (InterruptedException e) {
  e.printStackTrace();
  }
  }
  }

本周代码托管截图

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

这周开始了JAVA实验课程,在自己调试代码时可能很小的一个问题都需要花费很长的时间,从十几个bug一直修改,但最后却很有成就感,学习难度日益增大,希望自己能保持一个较好的心态.

学习进度条

代码行数(新增/累积) 博客量(新增/累积 学习时间(新增/累积) 重要成长
目标 5000行 20篇 200小时
第一周 100/100 1/1 7/10
第二周 200/100 1/1 7/10
第三周 400/100 1/1 9/10
第四周 400/200 1/1 7/10
第五周 500/200 1/1 9/10
第六周 400/200 2/1 15/10

参考资料

20145118 《Java程序设计》第6周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. es新增字段,并设置默认值

    重新设置mapping 添加新的字段. 设置es允许脚本执行:elasticsearch.yml script.inline: true 然后执行脚本 POST linewell_assets_mgt ...

  2. 正则表达式(三):Unicode诸问题下篇(转)

    原文:http://www.infoq.com/cn/news/2011/04/regular-expressions-4 我们使用正则表达式,熟练掌握各种功能和结构只是手段,解决实际的问题才是真正的 ...

  3. JPA 解析

    看图想想相关的架构 1.查询表达式中的接口层次结构 2.CriteriaQuery 封装了传统查询的子句 3.Metamodel API 中的持久化类型的接口的层次结构 4. Metamodel AP ...

  4. android(五)----使用WakeLock使Android应用程序保持后台唤醒

    在使用一些产品列如微信.QQ之类的,如果有新消息来时,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就知道有新消息来临了. 但是,一般情况下手机锁屏后,Android系统为了省电以及减少CPU消 ...

  5. 简述ASP.NET的页面运行机制

    在深入学习ASP.NET之前,首先需要先了解一下ASP.NET的页面运行机制: 浏览以下内容需要对ASP.NET管道有一定的了解,附上很不错的几个链接: 选择HttpHandler还是HttpModu ...

  6. Chrome插件汇总

    Chrome浏览器可以增加很多插件,帮助我们更方便地使用. 1   重新定位新标签页 名字:Infinity.crx 官网:http://www.infinitynewtab.com/ 效果图如下: ...

  7. ZOJ:2833 Friendship(并查集+哈希)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2833 A friend is like a flower, a rose ...

  8. Jquery map()

    <!DOCTYPE html> <html> <head> <style>p { color:red; }</style> <scri ...

  9. EM算法小结

    一.什么是EM算法? EM算法是机器学习中一个很重要的算法,即期望最大化算法,主要包括以下两个步骤: E步骤:estimate the expected values M步骤:re-estimate ...

  10. collections模块(收藏)

    collections是Python内建的一个集合模块,提供了许多有用的集合类. 1. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >> ...