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. MEF笔记 之延迟加载

    文章参考:在MEF中实现延迟加载部件  作者:TianFang 仅有一个服务提供者时候 using System; using System.Collections.Generic; using Sy ...

  2. Python抓取网页并保存为PDF

    https://blog.csdn.net/shenwanjiang111/article/details/67634794

  3. [Spring Data Repositories]学习笔记--为repository添加通用的方法

    如果想把一个方法加到所有的repository中,用前一篇提到的方法就不合适了. 英文原版,请看 http://docs.spring.io/spring-data/data-mongo/docs/1 ...

  4. Axis2Service客户端访问通用类集合List自定义类型

    Axis2 服务四种客户端调用方式: 1.AXIOMClient 2.generating a client using ADB 3.generating a client using XMLBean ...

  5. 【Python之路】第十五篇--Web框架

    Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:utf- ...

  6. 数据链路层负载均衡 Linux Virtual Server

    w 李智慧

  7. PhpStorm2017.1版激活方法、汉化方法以及界面配置

    本教程仅对2017.1版有效!!!!!! PhpStorm激活和汉化文件下载网址(提取密码:62cg) PhpStorm的介绍 PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提高用户效率, ...

  8. Linux下查看CPU型号,内存大小,硬盘空间命令

    1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重 ...

  9. win7安装composer

    安装前请务必确保已经正确安装了 PHP.打开命令行窗口并执行 php -v 查看是否正确输出版本号. 开始安装前需要把open_ssl扩展打开 打开命令行并依次执行下列命令安装最新版本的 Compos ...

  10. MySQL第二天

    回顾 数据库基础知识: 关系型数据库(磁盘)和非关系型数据库(内存)     关系型数据库: 建立在关系模型上的数据库 数据结构: 二维表(比较浪费空间) 操作数据的指令集合: SQL(DDL,DML ...