zoukankan      html  css  js  c++  java
  • 20155331 2016-2017-2 《Java程序设计》第8周学习总结

    20155331 2016-2017-2 《Java程序设计》第8周学习总结

    教材学习内容总结

    NIO与NIO2

    NIO使用频道(channel)来衔接数据节点,对数据区的标记提供了clear(),rewind(),flip(),compact()等高级操作。

    想要取得channel的操作对象,可以使用channels类。

    Buffer的直接子类们都有一个allocate()静态方法,可以让你指定Buffer容量。

    Buffer的容量大小可以使用capacity()方法取得。

    在以前,并没有标准方式取得不同文件系统所支持的不同属性,在JDK7中,可以通过BasicFileAttributes,DosFileAttributes,PosixFileAttributes,可以针对不同的文件系统取得支持的属性信息。

    NIO2文件系统API提供一组标准接口与类。

    日志API简介

    1.java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可在标准Java平台使用是其好处。使用日志的起点是Logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,要取得Logger实例,必修使用Logger的静态方法getLogger()。

    2.调用getLogger()时,必须指定Logger实例所属名称空间,名称空间以“.”作为层级区分,名称空间层级相同的Logger,其父Logger组态相同。
    通常在哪个类中取得的Logger,名称空间就会命名为哪个类全名。
    取得Logger实例后,可以使用Lever的静态成员指定信息层级。

    3.Logger是记录信息的起点,要输出的信息,必须先通过Logger的Lever与Filter过滤,在通过Handler的Lever与Filter过滤,格式化信息的动作交给Formatter,输出信息的动作实际上是Handler负责。

    4.Logger有层级关系,名称空间层级相同的Logger,父Logger组态会相同,每个Logger处理完自己的日志动作后,会向父Logger传播,让父Logger也可以处理日志。

    使用Handler与Formatter

    负责日志输出的是Handler实例。标准API中提供几个Handler操作类:
    MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲区,直到超过缓冲区大小,才将信息输出至指定的目标Handler。
    StreamHandler可自行指定信息输出时使用的OutputStream实例,它与子类都会使用指定Formatter格式化信息。
    ConsoleHandler创建时,会自动指定OutputStream为System.err,所以日志信息会显示在控制台。
    FileHandler创建时会建立日志输出时使用的FileOutputStream,文档位置与名称可以使用模式Pattern字符串指定。
    SocketHandler创建时可以指定主机位置与端口,内部将自动建立网络联机,将日志信息传送至指定的主机。

    Logger可以使用addHandler()新增Handler实例,使用removeHandler()移除Handler。

    FileHandler默认的Formatter是XMLFormatter;
    ConsoleHandler默认使用SimpleFormatter;这两个类是Formatter的子类,可以通过Handler的setFormatter()方法设定Formatter。

    JDK8 API增强功能

    JDK8中,String新增了join()静态方法可以直接使用

    String message = String.join("-","Java","is","cool");
    会产生“Java-is-cool”

    JDK8中,针对大型数组的平行化操作,在Arrays上新增了一些方法。
    parallelPrefix()方法可以指定XXXBinaryOperator实例,执行类似Stream的reduce()方法。
    parallelSetAll()方法用来对数组进行初始化或全面重新设置每个索引元素。
    parallelSort()方法可以将指定的数组分为子数组并以平行化当时分别排序。

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

    问题一:Java API问题

    public ArrayList(Collection c)

    请问 这是什么意思?
    我看到好多都写成这样
    不明白是什么意思啊

    答:泛型中的通配符!在你这里的含义表示这个集合中所能放入的数据只能是E或者E的子类,E表示某种类型,当然在你用他的时候你一定会指定E为什么类型的!

    问题二:在 许多的java api中,如servlet api,struts api,他们实现是不是都要基于JDK api?
    换句话说,如果没有jdk api。它们是不是都无法正常工作?
    由没有独立于jdk api的java api??

    java的开发环境是jdk ,
    在servlet ,struts中大量使用程序都是基于jdk开发的
    离开了jdk环境,这些程序是无法运行的
    jdk pai = java api

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

    这个应该怎么改?

    答:把FileChannel fc=new fin.getChannel();
    改为FileChannel fc=fin.getChannel();

    上周考试错题总结

    下面哪些Linux 命令可以ASCII码和16进制单字节方法输出Hello.java的内容?

    A .od -b -tx1 Hello.java

    B .od -tcx1 Hello.java

    C .od -tc -tx1 Hello.java

    D .od -tbx1 Hello.java

    答案:B、C

    下面哪些类的对象会包含“东部标准时间”的信息)
    (Choose all that apply.)

    A .Instant

    B .LocalDate

    C .LocalDateTime

    D .LocalTime

    E .ZonedDateTime

    答案: E

    下面哪些内容会出现在Period对象中?
    A .Year
    B .Month

    C .Day

    D .Hour

    E .Minute

    F .Second

    正确答案: A B C

    Given the following, which answers can correctly fill in the blank? (Choose all that

    apply.)针对下面的代码,()中应填入哪个选项?

    LocalDate date = LocalDate.now();

    LocalTime time = LocalTime.now();

    LocalDateTime dateTime = LocalDateTime.now();

    ZoneId zoneId = ZoneId.systemDefault();

    ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId);

    long epochSeconds = 0;

    Instant instant = ( );

    A .

    Instant.now()

    B .

    Instant.ofEpochSecond(epochSeconds)

    C .

    date.toInstant()

    D .

    dateTime.toInstant()

    E .

    time.toInstant()

    F .

    zonedDateTime.toInstant()

    正确答案: F

    What is the output of the following code?(下面代码的运行结果是?)

    LocalDate date = LocalDate.of(2018, Month.APRIL, 40);

    System.out.println(date.getYear() + " " + date.getMonth()

    " "+ date.getDayOfMonth());

    A .

    2018 APRIL 4

    B .

    2018 APRIL 30

    C .

    2018 MAY 10

    D .

    Another date

    E .

    The code does not compile.

    F .

    A runtime exception is thrown.

    正确答案: F

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

    要多查API,它是Java编程的基本方法,也是编程过程中所不断利用的资源。Java的学习过程不仅仅是基本语法的学习,更多的是去学习和掌握它所提供的API类库。

    评分标准

    正确使用Markdown语法(加1分):

    不使用Markdown不加分

    有语法错误的不加分(链接打不开,表格不对,列表不正确...)

    排版混乱的不加分

    模板中的要素齐全(加1分)

    缺少“教材学习中的问题和解决过程”的不加分

    缺少“代码调试中的问题和解决过程”的不加分

    代码托管不能打开的不加分

    缺少“结对及互评”的不能打开的不加分

    缺少“上周考试错题总结”的不能加分

    缺少“进度条”的不能加分

    缺少“参考资料”的不能加分

    教材学习中的问题和解决过程, 一个问题加1分

    代码调试中的问题和解决过程, 一个问题加1分

    本周有效代码超过300分行的(加2分)

    一周提交次数少于20次的不加分

    其他加分:

    周五前发博客的加1分

    感想,体会不假大空的加1分

    排版精美的加一分

    进度条中记录学习时间与改进情况的加1分

    有动手写新代码的加1分

    课后选择题有验证的加1分

    代码Commit Message规范的加1分

    错题学习深入的加1分

    点评认真,能指出博客和代码中的问题的加1分

    结对学习情况真实可信的加1分

    扣分:

    有抄袭的扣至0分

    代码作弊的扣至0分

    迟交作业的扣至0分

    点评模板:

    博客中值得学习的或问题:

    xxx

    xxx

    ...

    代码中值得学习的或问题:

    xxx

    xxx

    ...

    基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

    参考示例

    点评过的同学博客和代码

    上周博客互评情况

    20155220

    20155301

    20155228

    20155337

    20155324

  • 相关阅读:
    C++ 编译时字符串加密
    c#自动修复缺损和不规范的html
    C#下载网络资源(网页或文件)
    yum install 命令下载安装离线包
    C# Sql Server 数据库 传递 表值参数
    cximage 裁剪图片并背景透明
    centos 7.5 编译并运行 opencv 4.5.1 c++
    c++ freeimage 指定颜色透明
    c++ string 大小写转换
    opencv 裁剪图像
  • 原文地址:https://www.cnblogs.com/dd1174751354/p/6720542.html
Copyright © 2011-2022 走看看