教材学习内容总结
1.Java是以串流(Stream)的方式来处理输入与输出。
2.串流是一种抽象观念,从键盘输入资料,将处理结果输入档案,以及读取档案的内容等动作皆视为串流的处理。
3.在JAVA中,输入串流代表对象为java.io.InputStream实例,输出串流代表对象java.io.OutputStream实例。
4.在不使用InputStream与OutputStream时,必须使用close()方法关闭串流。
5.FileInputStream是InputStream的子类,可以指定文件名创建实例,一旦创建文档就开启,可用来读取数据。
6.FileOutputStream是OutputStream的子类,可以指定文件名创建实例,一旦创建文档就开启,可用来写出数据。
7.无论FileOutputStream还是FileInputStream,不使用时都要使用close()关闭文档。
8.batearrayinputstream是inputstream的子类,可以指定byte数组创建实例,一旦创建就可以将byte数组当作数据源进行读取。
9.batearrayoutputstream是outputstream的子类,可以指定byte数组创建实例,一旦创建就可以将byte数组当作目的地写出数据。
10.字符数据的读取,java SE提供了java.io.reader类。
11.字符数据的写入则提供了java.io.writer类。
12.使用InputStreamReader和OutputstreamWriter可对串流数据打包。
13.要让目前流程暂停指定时间,可以使用java.lang.Thread的静态sleep()方法。
14.在调用Thread实例start()方法后,基本状态为可执行,被阻断,执行中。
15.thread类上定义有stop()方法,被标示为Deprecated。
16.每个线程都属于某个线程群组。在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。
17.每个对象都会有个内部锁定,称为监控锁定。
教材学习中的问题和解决过程
在java中要想实现多线程使用Thread类。首先看一个例子
package bibang;
public class Bigbang extends Thread {
public Bigbang() {
}
public Bigbang(String name) {
this.name = name;
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(name + "运行 " + i);
}
}
public static void main(String[] args) {
Bigbang h1=new Bigbang("A");
Bigbang h2=new Bigbang("B");
h1.run();
h2.run();
}
private String name;
}
运行结果为:
当我们把上面的主函数修改为如下所示的时候:
public static void main(String[] args) {
Bigbang h1=new Bigbang("A");
Bigbang h2=new Bigbang("B");
h1.start();
h2.start();
}
我们在这里调用的是start()方法,但是实际上调用的还是run()方法的主体。尽管需要用到CPU的资源,但运行结果是一样的。
本周代码托管截图
其他(感悟、思考)
这周的任务很多,要做JAVA实验还要学习新的知识。新内容很多不理解,希望通过多敲代码来理解记忆吧。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
第一周 | 100/100 | 2/2 | 10/10 | |
第二周 | 150/250 | 1/3 | 10/20 | |
第三周 | 100/350 | 1/4 | 10/30 | |
第四周 | 320/670 | 1/5 | 30/60 | |
第五周 | 700/1370 | 1/6 | 30/90 | |
第六周 | 700/2070 | 2/8 | 30/120 |