20145118 《Java程序设计》第6周学习总结
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周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- web前端开发笔记(1)
一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必 ...
- IRC and security tools
login::: /msg NickServ identify <password>. join::: /join #metasploit 浏览器: Tor操作系统: Tails加 ...
- Jmeter(五)_函数
JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__functionName(var1 ...
- 《Nginx - 变量》- log_format/核心变量
一:log_format - 概述 - log_format 用于管理 Nginx 的详细信息,日志管理等信息,很多都是基于这个来实现. - 可配置参数 $remote_addr 客户端地址 $rem ...
- LightOj 1030 - Discovering Gold(dp+数学期望)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1030 题意:在一个1*n 的格子里,每个格子都有相应的金币数,走到相应格子的话,就会得 ...
- Constructing Roads----poj2421(最小生成树Kruskal)
题目链接: http://poj.org/problem?id=2421 想把n个村庄连接在一起:求最小生成树,不同的是已经有了m条线段链接在一起了,求剩下的: 感觉用Kruskal会简单一点 #in ...
- How Many Answers Are Wrong----hdu3038(并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 题意:数组第 a 个元素到第 b 个元素之间的和为sum: 求有几句话是假的,如果与前面的话有冲 ...
- Servlet----------ServletContext (重要)
1.ServletContext的概述 一个项目只有一个ServletContext对象!application 我们可以在N多个Servlet中获取这个唯一的对象,使用它来给多个Servlet传递数 ...
- 【剑指offer】重建二叉树
一.题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7 ...
- Windows下pycharm使用theano的方法
安装theano前需要自行安装Anaconda和PyCharm.在网上查了在PyCharm上安装theano的方法,但是均遇到了一些问题,现将问题与解决方案介绍如下. (一)第一种安装方式 打开cmd ...