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
  • 相关阅读:
    spring @component的作用详细介绍
    @Scheduled(cron = "0/5 * * * * *")将时间改为配置
    java项目里classpath具体指哪儿个路径
    返回前多少行数据
    Gson的基本使用
    JSON.toJSONString中序列化空字符串遇到的坑
    指定JSON.toJSONString中实体类属性的输出顺序
    Javascript实现的图片隐写术
    IntelliJ IDEA 快捷键终极大全
    ECMAScript 6 入门
  • 原文地址:https://www.cnblogs.com/20145103fwh/p/5376434.html
Copyright © 2011-2022 走看看