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

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

    教材学习内容总结

    第十章

    第十章输入和输出
    10.1.1
    ·若要将数据从来源中取出,可以使用输入串流;若要将数据写入目的地,可以使用输出串流。在java中,输入串流代表对象为java.in.InputStream的实例;输出串流代表对象为java.io.Outputstream的实例。
    ·在来源与目的地都不知道的情况下可以设计一个通用的dump()方法,该方法接受InputStream与OutputStream实例,分别代表读取数据的来源、输出的目的地。
    ·每次从Inputstream读入的数据,都会先置入byte数据,她的read()方法会尝试读入btye的数据,并返回读入的字节。
    ·要将某个文档读入并另存为另一个数据,可以由命令行操作如下java cc.openhome.Copy c:workspaceMain.java C:workspaceMain.txt
    10.1.2
    ·可以使用System的setIn()方法指定InputStream实例,重新指定标准输入来源
    ·FileInputStream是InputStream的子类,主要操作InputStream的read()抽象方法;FIleOutputStream是OutputStream的子类,主要操作其write()的操作方法
    ·ByteArrayInputStream是InputStream的子类,可以指定byte数据创建实例,主要操作其read()抽象方法;ByteArrayOutputStream是OutputStream的子类,主要操作其write() 的操作方法

    10.1.3
    ·串流装饰器本身并没有改变InputStream和OutputStream的行为,只是在得到数据之后,再做一些加工处理。
    ·BufferedInputStream与BufferedOutputStream主要在内部提供缓冲区功能。
    ·DataInputStream与DataOutputStream主要提供读取、写入java基本数据类型的方法,会自动在指定的类型与字节之间转换。实例代码见git开源中国。

    10.2.1
    ·Reader、Writer也有一些装饰器类可供使用,如果串流处理的字节数据,实际上代表某些字符的编码数据,而你想要将这些字节数据转换为对应的编码字符,可以使用InputStreamReader和OutputStreamWriter
    ·若要使用CharUtil.dump()读入文档、转为字符串并显示在文本模式中。
    ·解析几个常用子类:
    StringReader可以将字符串打包,当做读取来源,StringWriter可以作为写入目的地,最后toString()取出所有写入的字符组成的字符串。CharArrayReader、CharArrayWriter类似,将char数组当做读取来源以及写入目的地。

    10.2.2
    ·如果处理串流字节数据,将这些字节数据转换为对应的编码制度,可以使用 InputStringReader、InputStringWriter打包。
    ·BufferedReader、BufferedWriter可对Reader、Writer提供缓冲区,
    ·printWriter与PrintStream处理可以对OutputStream打包之外,Printwriter还可以对writer进行打包,提供print()、println()、format()等方法。

    第十一章

    在java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run()方法中。
    在java中,从main()开始的流程会由主线程执行,可以创建Thread实例来执行Runnable实例定义的run()方法。
    操作Runnable接口的好处就是较有弹性,你的类还有机会继承其他类。若继承了Thread,那该类就是一种Thread,通常是为了直接利用Thread中定义的一些方法,才会继承Thread来操作。
    在使用高级并行API时,Lock接口的操作对象可实现synchronized的功能。

    import java.util.Arrays;
    
    public class ArrayList {
        private Object[] list;
        private int next;
       
        public ArrayList(int capacity) {
            list = new Object[capacity];
        }
    
        public ArrayList() {
            this(16);
        }
    
        public void add(Object o) {
            if(next == list.length) {
                list = Arrays.copyOf(list, list.length * 2);
            }
            list[next++] = o;
        }
        
        public Object get(int index) {
            return list[index];
        }
        
        public int size() {
            return next;
        }
    }
    

    ConcurrentHashMap是ConcurrentMap的操作类,ConcurrentNavigableMap是ConcurrentMap的子接口,其操作类为ConcurrentSkipListMap,可视为支持并行操作的TreeMap版本。

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

    这两章的内容还是比较多的,并且有很多新的东西,但是在理解方面,并没有前面的概念性的知识难理解,在将书上的代码敲过一些之后,对于这些内容就有了很好地理解, 只是书上的知识点还是蛮多的,这就需要我们花费大量的时间去理解。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 2000行 16篇 400小时
    第一周 200/200 1/2 20/20
    第二周 200/400 1/3 20/40
    第三周 200/600 1/4 20/30
    第四周 200/800 1/5 20/80
    第五周 200/1000 1/6 20/100
    第六周 200/1200 1/7 20/120
  • 相关阅读:
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 最大的元素距离
    Java 第十一届 蓝桥杯 省模拟赛 递增序列
    Java 第十一届 蓝桥杯 省模拟赛 递增序列
    Java 第十一届 蓝桥杯 省模拟赛 最大的元素距离
  • 原文地址:https://www.cnblogs.com/20145103fwh/p/5376434.html
Copyright © 2011-2022 走看看