教材学习内容总结

Lambda语法

  • Lambda去可以重复,符合DRY原则,而且Lambda表达式可读性更好,操作更简单
  • 匿名类型最大的问题就在于其冗余的语法,lambda表达式是匿名方法,它提供了轻量级的语法,从而解决了匿名内部类带来的冗余问题。
  • 接口默认方法:在JDK8中,interface定义时可以加入默认操作,或者称为默认方法(Default methods),forEach()方法本身已有操作,所以不会破坏Iterable现有的其他操作。在默认方法中不能使用数据成员,因为接口本身不能定义数据成员,也就是默认方法中不能用直接变更状态的流程。

Functional与Stream API

  • 使用Optional代替null
  • 标准API的函数接口
    • Consumer:一个参数,无返回值
    • Function:一个参数,有返回值
    • Predicate:一个参数,有返回值,返回值必须是boolean类型的
    • Supplier:无参数,有返回值
  • Stream与管道

Lambda与并行处理

第十三章部分 - 时间与日期

认识时间与日期

  • 时间的度量

    • GMT(Greenwich Mean Time)时间:现在不是标准时间
    • 世界时(Universal Time,UT):1972年UTC出来之前,UT等价于GMT
    • 国际原子时(TAI):秒的定义
    • 世界协调时间(Corrdinated Universal Time, UTC): 闰秒
    • Unix时间: 1970.1.1 00:00:00开始的秒数
    • epoch: java.util.Date epoch毫秒数
  • 日历
    • 儒略历(Julian Calendar)
      儒略历是现今公历的前身,用来取代罗马历,修正了罗马历隔三年设置一闰年的错误,改采四年一闰。
    • 格里高利历(Gregorian Calendar)
      格里高利历将儒略历1582年10月4日星期四的隔天,订为格里高利历1582年10月15日星期五。
    • ISO8601 标准
      ISO 8601并非年历系统,而是时间日期表示方法的标准,用意统一时间日期的数据交换格式。在ISO 8601标准的定义中,19世纪是指1900年到1999年,而格里高利历的19世纪是指1801年到1900年。

认识Date与Calendar

  • 时区:考虑了UTC偏移的时间表示上,通常会标识Z符号。
  • Date与DateFormat
    • Date:使用System.currentTimeMillis()方法,返回的是long类型的整数,代表1970年1月1日00:00:00至今经过的毫秒数,只用来获取epoch毫秒数。
    • DateFormat是个抽象类,其操作类是java.text.SimpleDateFormat,用来格式化成人类理解的年月日时分秒。
  • Calendar: 时间的运算
    • getInstance(): 要取得某个时间日期资讯,或者是对时间日期进行操作,可以使用Calendar实例,通过Calendar的getInstance()取得的Calendar实例,默认就是取得GregorianCalendar实例
    • getTime():取得Calendar实例后,可以使用getTime()取得Date实例
    • get():如果想要取得年月日等日期时间字段,可以使用get()方法指定Calender上的字段枚举常数
    • add():改变实例的时间
    • roll():如果打算只针对日期中某个字段加减,则可以使用roll()方法
    • after():比较两个实例的日期先后
    • before():比较两个实例的日期先后
    • ...

JDK8新时间日期API

    • 机器时间 Instant

      • Calendar的getTime()返回false实例,取得Date实例,下一步应该获取时间信息,应该是通过Date的getTime()取得epoch毫秒数
      • 用以代表自定义的Java epoch之后的某个时间点历经的毫秒数,精确度基本上是毫秒。使用Instant的静态方法now()取得代表Java epoch毫秒数的Instant实例,取得Instant实例后,可以使用plusSeconds()、plusMillis()、plusNanos()、minusSeconds()、minusMillis()、minusNanos()来做时间轴上的运算,Instant实例本身不会变动,这些操作会返回新的Instant实例,代表运算后的瞬时
    • 人类时间(ISO8601 标准)

      • LocalDateTime:包括日期与时间
      • LocalDate:只有日期
      • LocalTime:只有时间
      • ZonedDateTime:时区的日期与时间
      • OffsetdateTime:代表UTC偏移量
      • Year:表示年
      • YearMonth:表示年月
      • Month:表示月
      • MonthDay:表示月日

20145234黄斐《Java程序设计》第七周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第七周学习总结

    1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...

  2. 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

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

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

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

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

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

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

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

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

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

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  8. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  9. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

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

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

随机推荐

  1. spring的声明式事务,及redis事务。

    Redis的事务功能详解 http://ghoulich.xninja.org/2016/10/12/how-to-use-transaction-in-redis/ MULTI.EXEC.DISCA ...

  2. How to update BOL entity property value via ABAP code

    Suppose I have one product with ID I042416 which could be found in CRM WebClient UI: I would like to ...

  3. 深入理解PHP传参原理(PHP5.2)

    首先说下今天想到的一个问题.在编写php扩展的时候,似乎参数(即传给zend_parse_parameters的变量)是不需要free的.举例: PHP_FUNCTION(test) { char* ...

  4. codeforces 797 E. Array Queries【dp,暴力】

    题目链接:codeforces 797 E. Array Queries   题意:给你一个长度为n的数组a,和q个询问,每次询问为(p,k),相应的把p转换为p+a[p]+k,直到p > n为 ...

  5. 异常:Neither BindingResult nor plain target object for bean name 'command' available as request attribute

    Neither BindingResult nor plain target object for bean name 'command' available as request attribute ...

  6. vector erase

    vector::erase 从指定容器删除指定的元素 两个重载: iterator erase (iterator position);删除指定位置position的元素,并返回删除元素的下一个元素的 ...

  7. 【转】java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener

    http://www.cnblogs.com/softidea/p/6064091.html Caused by: java.lang.NoClassDefFoundError: org/spring ...

  8. Kubernetes资料收集

    官方文档 https://kubernetes.io/docs/home/?path=users&persona=app-developer&level=foundational 视频 ...

  9. day 03 --Haproxy 增加, 删除,查询

    key 知识点:函数的定义, 函数的递归调用, flag 标志位的使用,eval() 函数 #!C:\Program Files\Python35\bin # -*- conding:utf-8 -* ...

  10. CentOS7利用本地yum源配置NBD

    一:CentOS7.0创建本地YUM源 (物理机:直接将刻录的CentOS7光盘利用光驱插入物理机上) (虚拟机: CD/DVD>>连接本地ISO) 针对物理机192.168.9.112进 ...