zoukankan      html  css  js  c++  java
  • 20145122《Java程序设计》第6周学习总结

    教材学习内容总结

    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
  • 相关阅读:
    最清晰易懂的Mysql CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP区别
    yield再理解--绝对够透彻
    解决pyspider框架web预览框过小问题
    python中的可哈希与不可哈希
    python json.dumps 中的ensure_ascii 参数引起的中文编码问题
    LeetCode 297. 二叉树的序列化与反序列化 | Python
    LeetCode 1300. 转变数组后最接近目标值的数组和 | Python
    LeetCode 30. 串联所有单词的子串 | Python
    LeetCode 739. 每日温度 | Python
    LeetCode 128. 最长连续序列 | Python
  • 原文地址:https://www.cnblogs.com/20145122chengzhiyin/p/5370069.html
Copyright © 2011-2022 走看看