zoukankan      html  css  js  c++  java
  • 20155330 2016-2017-2 《Java程序设计》第六周学习总结

    20155330 2016-2017-2 《Java程序设计》第六周学习总结

    教材学习内容总结

    学习目标

    1. 理解流与IO
    2. 理解InputStream/OutPutStream的继承架构
    3. 理解Reader/Writer继承架构
    4. 会使用装饰类
    5. 会使用多线程进行并发程序设计

    第十章 章节主要内容

    小结

    • 掌握父类中方法,核心类:

    • Java中输入串流代表对象为java.io.InputStream 实例,输出串流代表对象为java.io.OutputStream 实例。无论数据源或目的地为何,只要取得以上两个实例,接下来操作输入/输出方式一致。

    • 在不使用InputStreamOutputStream 时,必须使用close()方法关闭串流。

    • java.net.URL 的使用:指定网址,URL实例会自动进行HTTP协议。

    • InputStream常用类继承架构:

      • FileInputStream:把一个文件作为InputStream,实现对文件的读取操作。
      • ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用,可以指定byte数组创建实例,一旦创建就可将byte数组当作数据源进行读取。
    • BufferedInputStream:主要在内部提供缓冲区功能,操作上与InputStream没有太大差别。

    • DataInputStream:提供读取、写入Java基本数据类型的方法,像是读写int、double、boolean等的方法,这些方法会自动在指定的类型与字节间转换。

    • ObjectInputStream:提供readObject()方法将数据读入为对象,具备对象串行化能力。

    • OutputStream常用类继承架构:

      • FileOutputStream:把信息存入文件中,可以指定文件名创建实例,一旦创建文档就开启,接着就可以用来写出数据。
      • ByteArrayOutputStream:把信息存入内存中的一个缓冲区中,可以指定byte数组创建实例,一旦创建就可将byte数组当作目的地写出数据。
      • BufferedOutputStream:主要在内部提供缓冲区功能,操作上与OutputStream没有太大差别。
      • DataOutputStream:提供读取、写入Java基本数据类型的方法,像是读写int、double、boolean等的方法,这些方法会自动在指定的类型与字节间转换。
      • ObjectOutputStream:提供writeObject()方法将对象写至目的地,具备对象串行化能力。
    • Reader抽象类:用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int)close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率或其他功能。

    • Reader继承架构:

    • Writer抽象类:写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。

    • Writer继承架构:

    第十一章 章节主要内容

    小结

    • 在java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable 接口,流程的进入点是操作在run()方法中。
    • 如果想要为JVM加装CPU,就是创建Thread实例,要启动额外CPU就是调用Thread实例的start()方法,额外CPU执行流程的进入点,可以定义在Runnale接口的run()方法中。
    • 如果主线程中启动了额外线程,默认会等待被启动的所有线程都执行完run()方法才中止JVM。如果一个Thread被标识为Daemon线程,在所有的非Daemon线程结束时,JVM就会自动终止。
    • 在调用Thread实例start()方法后,基本状态为可执行(Runnable)、被阻断(Blocked)、执行中(Running)。

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

    • 问题1:·InputStreamReaderWriter的区别
    • 解决方案:InputStream针对于串流输入;Reader针对于字符数据的读取;Writer针对于字符数据写入;。
    • 问题2:ForkJoinPool与其他的ExecutorService的区别
    • 解决方案:ForkJoinPool是闲聊了工作窃取演算,其建立的线程如果完成手边任务,会尝试寻找并执行其他任务建立的资额任务,让线程保持忙碌状态,有效利用处理器的能力。ForkJoin框架适用于计算密集式的任务,较不适合用于容易造成线程阻断的场合。

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

    本周未遇到代码调试的问题。

    代码托管


    上周考试错题总结

    • 错题1:

    现有:

        import java.util.*;
    
        Class FindStuff  {
            public static void main (String[]args)    {
            //insert code here
                c.put ("X", 123);
            }
        }
    

    分别插入到第5行,哪几行允许代码编译?

    A.Map c= new SortedMap();

    (√) B.HashMap c= new HashMap();

    C.HashMap c= new Hashtable();

    (√) D.SortedMap c= new TreeMap();

    E.ArrayList c= new ArrayList();

    (√) F.Map c = new LinkedHashMap();

    • 错题2:

    现有:

    class Guy  {  
        String greet()  {  
            return "hi";  
        } 
    }
    class Cowboy extends Guy  {  
        String greet()  {  
            return. "howdy";
        }
    }
    class  Wrangler  extends  Cowboy  {  
        String  greet()  {  
            return  "orch!"; 
        }
    }
    
    class Greetings2  {
        public  static void main (String  []  args)  {
            Guy g=new Wrangler();
            Guy g2=new Cowboy();
            Wrangler w2=new Wrangler();
            System.out.print(g.greet()+g2.greet()+w2 .greet());
        }
    }
    

    结果是什么?

    A.hi hi ouch!

    (√)B.ouch! howdy ouch!

    C.hi howdy ouch!

    D.编译失败

    结对及互评

    评分标准

    1. 正确使用Markdown语法(加1分):

      • 不使用Markdown不加分
      • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
      • 排版混乱的不加分
    2. 模板中的要素齐全(加1分)

      • 缺少“教材学习中的问题和解决过程”的不加分
      • 缺少“代码调试中的问题和解决过程”的不加分
      • 代码托管不能打开的不加分
      • 缺少“结对及互评”的不能打开的不加分
      • 缺少“上周考试错题总结”的不能加分
      • 缺少“进度条”的不能加分
      • 缺少“参考资料”的不能加分
    3. 教材学习中的问题和解决过程, 一个问题加1分

    4. 代码调试中的问题和解决过程, 一个问题加1分

    5. 本周有效代码超过300分行的(加2分)

      • 一周提交次数少于20次的不加分
    6. 其他加分:

      • 周五前发博客的加1分
      • 感想,体会不假大空的加1分
      • 排版精美的加一分
      • 进度条中记录学习时间与改进情况的加1分
      • 有动手写新代码的加1分
      • 课后选择题有验证的加1分
      • 代码Commit Message规范的加1分
      • 错题学习深入的加1分
      • 点评认真,能指出博客和代码中的问题的加1分
      • 结对学习情况真实可信的加1分
    7. 扣分:

      • 有抄袭的扣至0分
      • 代码作弊的扣至0分
      • 迟交作业的扣至0分

    点评模板:

    • 博客中值得学习的或问题:

      • 狄惟佳同学的博客中许多问题的解决方案都十分详细,有一些疏忽的地方在她的博客中都能得到很好的解答。
    • 代码中值得学习的或问题:

      • 狄惟佳同学的博客中提到catch()异常的继承关系,在catch括号中列出的异常不得有继承关系,否则会发生编译错误。让我对catch()异常的疑问得到了解答。
    • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

    • 参考示例

    点评过的同学博客和代码

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

    由于从第六周开始,各科的实验课程也开展了起来,需要学习的东西更多了,合理分配自己的各科学习时间变得重要起来,提高自己的学习效率也十分必要。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 18篇 300小时
    第一周 15/15 1/1 15/15
    第二周 159/174 1/2 20/35
    第三周 414/588 1/3 18/53 了解了封装、对象
    第四周 461/1049 1/4 18/71
    第五周 786/1835 1/5 18/89
    第六周 699/2534 1/6 20/109
    • 计划学习时间:16小时

    • 实际学习时间:20小时

    • 改进情况:在进行了一番规划之后,将学习时间提到了二十小时,但是由于从第六周开始,各科的实验课程也开展了起来,需要学习的东西更多了,所以需要提高自己的学习效率。

    参考资料

  • 相关阅读:
    mysql数据库常用指令
    解决windows的mysql无法启动 服务没有报告任何错误的经验。
    “Can't open file for writing”或“operation not permitted”的解决办法
    启动Apache出现错误Port 80 in use by "Unable to open process" with PID 4!
    如何打开windows的服务services.msc
    常见的HTTP状态码 404 500 301 200
    linux系统常用的重启、关机指令
    (wifi)wifi移植之命令行调试driver和supplicant
    linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )
    alloc_chrdev_region申请一个动态主设备号,并申请一系列次设备号
  • 原文地址:https://www.cnblogs.com/ashin-kl/p/6658238.html
Copyright © 2011-2022 走看看