20145230 《Java程序设计》第8周学习总结

教材学习内容

NIO与NIO2

NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以设定缓冲区(Buffer)容量,在缓冲区中对感兴趣的数据区块进行标记,像是标记读取位置、数据有效位置,对于这些区块标记,提供了clear()、rewind()、flip()、compact()等高级操。想要取得Channel的操作对象,可以使用Channels类,它定义了静态方法newChannel(),可以让你从InputStream、OutputStream分别建立ReadableByteChannel、WritableByteChannel,有些InputStream、OutputStream实例本身也有方法可以取得Channel实例,例如:FileInputSteam、FileOutputStream都有个getChannel()方法可以分别取得FileChannel实例。

NIO2文件系统

NIO2文件系统API提供一组标准接口与类,应用程序开发者只要基于这些标准接口与类进行文件系统操作,底层实际如何进行文件系统操作,是由文件系统提供者负责(由厂商操作)。应用程式开发者可以通过java.nio.file套件中FileSystems、Paths、Files等类提供的静态方法,取得相关操作对象或进行各种文件系统操作,这些静态方法内部会运用FileSystemProvider来取得所需的操作对象,完成应有的操作。

Buffer架构与操作

在NIO设计中,数据都是在java.nio.Buffer中处理,Buffer是个抽象类,定义了clear(),rewind(),flip(),compact()等对数据区块的高级操作,这类操作返回类型都是Buffer,实际上返回this。Buffer的容量大小可以用capacity()方法取得,Buffer的数据界限索引值可以用limit()方法取得,Buffer的下一个可读取数据的位置索引值可以由position()方法取得。当一个缓冲区刚被配置或调用clear()方法后,limit()等于capacity(),position()会是0。

操作文档与目录

如果想要删除Path代表的文档或目录,可以使用Files.delete()方法,如果不存在,会抛出NoSuchFileException,如果因目录不为空而无法删除文档,会抛出DirectoryNotEmptyException。使用Files.deleteIfExists()方法也可以删除文档,这个方法在文档不存在时调用,并不会抛出异常。Files.copy()还有两个重载版本,一个是接受InputStream作为来源,可直接读取数据,并将结果复制至指定的Path中;另一个Files.copy()版本是将来源Path复制至指定的OutputStream。若要进行文档或目录移动,可以使用Files.move()方法,使用方式与Files.copy()方法类似,可指定来源Path、目的地Path与CopyOption。

Pattern与Matcher

java.util.regex.Pattern实例是规则表示式在JVM中的代表对象,Pattern的构造函数被标示为private,必须通过Pattern的静态方法compile()来取得。
在取得Pattern的实例后,可以使用split()方法将指定字符串依规则表示式切割。

StringJoiner、Arrays新增API

1.String,join()、StringJoiner String新增join()静态方法可以指定每个字符串间以逗号分隔进行连接。2.Arrays Arrays上新增parallelPrefix()、parallelSetAll()与parallelSort()方法。 parallelPrefix()方法,可以指定xxxBinaryOperator实例,执行类似Stream的reduce()过程。 parallelSetAll()方法,用来对数组进行初始化或全面重设每个索引元素。 parallelSort()方法,可以将指定的数组分为子数组并以平行化方式分别排序,然后再进行合并排序。

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

这周主要是看了看15章的内容,这一章内容其实是蛮少的,但我还是不能理解其中一些东西,感觉后面这几章学习的东西都比较实际,比较具体,不再那么抽象,如果自己好好敲了代码那还是能理解其中的知识的,总之得跟着书本走。

本周代码托管截图


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

本周学习的内容是很实用的通用API,并且我们还了解了java中日志的一些功能,感觉比较有用。虽说我这周又是学习两章的内容,知识点比较多,但还好,因为每一周都是这样过来的,习惯了就好了。java的核心知识与难点之前都已经学完了,后面的章节全都是介绍一些类的应用。感觉如果后面这些写章节学好了,自己的java水平应该会更上一层楼吧,虽然现在自己处于负一楼,反正希望自己坚持下来就好了。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 2000 行 25篇 400小时
第一周 100/100 2/2 20/20
第二周 100/200 2/4 20/40
第三周 50/250 1/5 20/60
第四周 564/814 2/7 30/90
第五周 623/1437 1/8 30/120 了解到了程序中的异常处理
第六周 2/9 30/120 了解到了java的输入与输出
第七周 425/1872 2/11 20/140 了解到了Lambda语法与java中的日期与时间
第八周 265/2117 2/13 了解到了一些日志API

参考资料

20145230 《Java程序设计》第8周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. Eclipse 工作空间(Workspace)

    Eclipse 工作空间(Workspace) eclipse 工作空间包含以下资源: 项目 文件 文件夹 项目启动时一般可以设置工作空间,你可以将其设置为默认工作空间,下次启动后无需再配置: 工作空 ...

  2. 小知识,大智慧(restframework 拾忆)

    一.直接对query_set序列化,在页面展示的效果是Unicode 编码格式 ,可在json 序列化时候加入一个参数 course_query = DegreeCourse.objects.all( ...

  3. phpcs,phpmd,phan安装部署,phpstorm配置phpunit

    git参考地址:https://github.com/YunhanTech/overview/blob/master/php/learn-road.md phpcs 安装 composer globa ...

  4. 5、easyUI-菜单与按钮

    列出源码:求解 <html> <head> <meta http-equiv="Content-Type" content="text/ht ...

  5. cocos2d-x:Layer::setPosition

    如果Node的实际类型是Layer或者其派生类, setPosition是不是有猫腻? std::string menuImage = "menu.png"; auto menuI ...

  6. 在ios中运用core animation暂停和继续动画

    本文转载至 http://blog.csdn.net/wildfireli/article/details/23191861 暂停和继续动画的核心代码如下: <pre name="co ...

  7. ios数据存储方式FMDB

    本文转载至 http://blog.csdn.net/chen505358119/article/details/9289489 分类: ios2013-07-10 14:05 2471人阅读 评论( ...

  8. python学习【第五篇】python函数 (二)

    一.装饰器 装饰器:本质就是函数,功能是为其它函数添加附加功能 装饰器的原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方式 装饰器的知识储备: 装饰器 = 高阶函数 + 函数嵌套 + 闭包 ...

  9. 在前端眼中pc端和移动的开发区别

    按照昨天所说,本包子今天将总结在前端开发中,pc端和移动端的区别,整理完这些区别,本包子将开始整理pc端的布局,会写实际的代码了,还是那句话,希望文章中有什么不足的地方,大家能多多指正,大家一起进步, ...

  10. iOS RunLoop详解

    1. RunLoop简介 1.1 什么是RUnLoop 可以理解为字面的意思:Run表示运行,Loop表示循环.结合在一起就是运行的循环.通常叫做运行循环. RunLoop实际上是一个对象,这个对象在 ...