20155208徐子涵 2016-2017-2 《Java程序设计》第6周学习总结

教材学习内容总结

10.1.1

1.Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象。

2.若要将数据从来源中取出,可以使用输入串流;若要将数据写入目的地,可以使用输出串流。在java中,输入串流代表对象为java.in.InputStream的实例;输出串流代表对象为java.io.Outputstream的实例。

3.read()方法每次尝试读取数据,并返回实际读入的,只要不是负一,就表示读到数据。

4.write()方法,指定要写出的数组,初始索引与数据长度。

10.1.2

1.标准输出可以重新导向至文档,只要执行程序时使用>将输出结果导向至指定文档。

2.FileInputStream是InputStream的子类,可以指定文件名创建实例,一旦创建文档就开启,接着就可用来读取数据。

3.ByteArryInputStream是InputStrteam的子类,可以指定byte数组创建实例,一旦创建就可将byte数组当做数据源进行读取。

4.ByteArryOutputStream是OutputStream的子类,可以指定byte数组创建实例,一旦创建将byte数组当做目的地写出数据。

10.1.3

1.创建BufferedInputStreamBufferedOutputStream 必须提供 InputStream 和 OutputStream进行打包,可以使用默认或自定义缓冲区大小

BufferedInputStreamBufferedOutputStream主要在内部提供缓冲区功能,操作上与InputStreamOutputStream没有太大区别

2.DataInptStreamDataOutputStream 提供读入、写入Java基本数据类型的方法,会自动在指定的类型与字节间转换

ObjectInputStream 与objectOutputStream将内存中的对象整个存储下来,之后再读入还原为对象

ObjectInputStream提供 readObject() 方法将数据读入对象, objectOutputStream提供 writeObject() 方法将对象写至目的地,可以被这两个方法操作的对象,必须操作java.io.Serializable接口

10.2

Reader、Writer中也有一些装饰器类,InputStreamReaderOutputStreamWriter可以对串流数据打包,BufferedReaderBufferedWriter可对ReaderWriter提供缓冲区作用,在处理字符输入/输出时,对效率也会有所帮助。PrintWriterPrintStream使用上极为类似,不过除了可以对OutputStream打包之外,PrintWriter还可以对Writer进行打包,提供print()println()format()等方法。

11.1.1

1.单线程程序:启动的程序从 main() 程序进入点开始至结束只有一个流程

多线程程序:程序有多个流程

11.1.2

1.JVM是台虚拟计算机,只安装一颗称为主线程的CPU,可执行main()定义的执行流程。如果想要为JVM加装CPU,就是创建Thread实例,要启动额外CPU就是调用Thread实例的start()方法,额外CPU执行流程的进入点,可以定义在Runnale接口的run()方法中。

11.1.3

setDeamon()方法用来设定一个线程是否为Daemon线程。 在调用Thread实例start()方法后,基本状态为可执行(Runnable)、被阻断(Blocked)、执行中(Running)。 使用Thread.sleep()会让线程进入Bocked状态。 当线程使用join()加入至另一个线程时,另一个线程会等待被加入的线程工作完毕,然后在继续它的动作,join()的意思表示将线程加入称为另一个线程的流程中。 线程完成run()方法后,就会进入Dead,进入Dead的线程不可以再次调用start()方法,否则会抛出IllegalThreadStateException异常。

11.1.4

1.java.lang.ThreadGroup可以管理群组中的线程

2.interrupt()方法可以中断群组中的所有线程

3.setMaxpriority()方法可以设定群组中所有线程最大优先权

4.enumerate()方法可以一次取得群组中所有线程

5.activeCount()方法取得群组的线程数量

6.uncaughtException()方法处理某个线程未被捕捉的异常。

11.1.5

1.Lock接口主要操作类之一为ReentranLock,可以达到 synchronized的作用,也提供额外的功能

2.ReadWriteLock 接口定义了读取锁定与写入锁定的行为,ReentrantReadWriteLock是 ReadWriteLock接口的主要操作类;ReadWriteLock在没有任何读取或写入锁定时,才可以取得写入锁定,可用于悲观读取;

3.Condition接口用来搭配 Lock,最基本用法就是达到Object的wait()、notify()、notifyAll()方法的作用;调用 Lock的newCondition() 取得 Condition操作对象;调用 Lock的 await()将会使线程进入 Condition的等待集合;调用 signal()方法通知等待集合中的一个线程,signalAll()方法通知所有等待集合中的线程。

11.2

在使用高级并行API时:

1.Lock接口的操作对象可实现synchronized的功能。

2.Condition接口的操作对象可实现Object的wait()、notify()、notifyAll()功能

3.Future接口的操作对象可以让你在未来取得执行结果。

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

问题:

对第十章各种输入输出的流及类的关系和差别弄不清楚。

解决过程:

通过反复看教材并总结知识点,得到以下解析:

InputStream:字节输入流,抽象化字节数据读入的来源 OutputStream:字节输出流,抽象化字节数据写出的目的地

InputStream子类:FileInputStream、ByteArrayInputStream、DataInputStream、ObjectInputStream

OutputStream子类:FileOutputStream、ByteArrayOutputStream、DataOutputStream、ObjectOutputS tream、PrintStream

Reader:字符输入流,抽象化字符数据读入的来源 Writer:字符输出流,抽象化字符数据写出的目的地

Reader子类:FileReader、BufferedReader、StringReader、CharArrayReader、InputStreamReader

Writer子类:FileWriter、BufferedWriter、StringWriter、CharArrayWriterr、OutputStreamWrit er、PrintWriter

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

问题:

不理解书上p327页代码片段(如下)中start的作用及含义。

Thread tortoiseThread = new Thread(tortoise); Thread hareThread = new Thread(hare); tortoiseThread.start();
hareThread.start(); 解决过程:

通过看书上的重点内容,得到以下解释:

从main()开始的流程会由主线程执行,可以创建Thread实例来执行Runnable实例定义的run()方法,要启动线程 执行指定流程,必须调用Thread实例的start()方法。

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

感觉这周的学习内容比较抽象,接触起来有些复杂,不过还是耐下心来慢慢的在看,不过这周的代码实践做得不是很好,因为这周的事情实在是太多了,学业繁重还要准备“五四杯”首都大学生联赛,以至于学习上有一点拖拉,下周会尽力调整自己,把进度赶上。

上周考试错题总结

托管代码截图:

结对及互评

我的结对队友是20155221杨泽武 老师您应该是给他单独安排了学习目标,我暂时没有办法进行点评。

点评过的同学博客和代码

学号1

学号2

学号3

学号4

学号5

学习进度条

  代码行数(新增/积累) 博客量(新增/积累 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 16/16 1/1 8/8
第二周 120/120 2/2 12/12
第三周 130/150 1/1 9/9
第四周 180/200 1/1 15/15
第五周 150/300 1/1 12/12
第六周 120/300 1/1 8/8

参考资料

20155208徐子涵 2016-2017-2 《Java程序设计》第6周学习总结的更多相关文章

  1. 20155334 2016-2017-2 《Java程序设计》第九周学习总结

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

  2. 20155321 2016-2017-2 《Java程序设计》第九周学习总结

    20155321 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 厂商在实现JDBC驱动程序时,依方式可将驱动程序分为四种类型: JDBC-OD ...

  3. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  4. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  5. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  6. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  7. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  8. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  9. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  10. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

随机推荐

  1. python3练习-装饰器

    在廖雪峰的官方网站学习装饰器章节时,初步理解类似与面向切面编程.记录一下自己的课后习题解法. 问题: 请编写一个decorator,能在函数调用的前后打印出'begin call'和'end call ...

  2. Minimum supported Gradle version is 4.1. Current version is 2.14.1

    Error:Minimum supported Gradle version is 4.1. Current version is 2.14.1. If using the gradle wrappe ...

  3. 熔断监控面板(Hystrix Dashboard)

    Hystrix Dashboard Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Comma ...

  4. 中国队再创佳绩,IOI2018喜获四金

    第30届国际信息学奥林匹克竞赛(IOI2018)于9月1日-8日在日本筑波举行,共有来自87个国家(地区)的335名选手参赛.    中国代表队四名选手经过努力拼搏,获得金牌.其中,杨懋龙(湖南长沙市 ...

  5. python介绍与入门

    一.python 的介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为 ...

  6. [Codeforces797F]Mice and Holes

    Problem n个老鼠,m个洞,告诉你他们的一维坐标和m个洞的容量限制,问最小总距离. Solution 用dp[i][j]表示前i个洞,进了前j个老鼠的最小代价 dp[i][j]=min(dp[i ...

  7. Cracking The Coding Interview4.5

    //原文: // // Write an algorithm to find the 'next' node (i.e., in-order successor) of a given node in ...

  8. CentOS7安装配置Bacula yum方法

    参考: https://www.baidu.com/link?url=o2QIy2YZWjsJPAFJuYFhrH3nPvtyRkSe-o5Q_FqFZ5E1EMOsIOmGeKm0HAonwHOw8 ...

  9. JSP组件Telerik UI for JSP发布R1 2019 SP1|附下载

    Telerik UI for JSP拥有由Kendo UI for jQuery支持的40+ JSP组件,同时通过Kendo UI for jQuery的支持能使用JSP封装包构建现代的HTML5和J ...

  10. DevExpress v18.1新版亮点——Analytics Dashboard篇(二)

    用户界面套包DevExpress v18.1日前正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress Analytics Dashboard v18.1 的新功能,快 ...