20145120 《Java程序设计》第7周学习总结

20145120 《Java程序设计》第7周学习总结

教材学习内容总结

Lambda表达式

例:Comparator<String> byLength = (name1, name2) -> name1.length() - name2.length();
等号右边是Lambda表达式,左边是其目标类型
Lambda不建议用多行描述
Lambda中即使不接受任何参数也必须写括号
在只有Lambda表达式的情况下,参数的类型必须写出来。

@FunctionalInterface标注,本身不是函数接口则会引发错误

方法参考,例:Comparator<String> byLength = StringOther::bylength;可以避免到处写Lambda表达式

使用Optional取代null。在方法中可能返回null,必须检查返回是否为null,并在返回null时使用默认值

JDK8定义的通用函数接口,基本上放置于java.util.function套件之中,就行为来说,基本上可以分为consumer,function,predicate,supplier四个类型

一个管道基本包括以下部分
·来源
·零或多个中间操作
·一个最终操作

截图:

(应为都是39不太看得出效果所以我调了一下,把最后一个改成了27岁、男,不是代码敲错了)

(把过滤的条件改成了女)

时间和日期

使用System,currentTimeMillis()方法可以取得系统时间,返回的是long类型整数。

date偏向机器时间,可以用getTime()取得其内部的epoch毫秒数值

java.text.DateFormat可进行字符串时间格式处理,其操作类java.text.SimpleDateFormat
可直接构建SimpleDateFormat实例,能使用模式字符自定义格式,其中parse()方法可将指定字符串剖析成Date实例

也可使用DateFormat的各种方法

格式化时间日期用DateFormat,取得某个时间日期并操作用Calender(操作儒略历和格里高利历的混合历),Calender的月份列举是从0开始的
add()用来改变Calender的时间,只针对某个字段的加减用roll(),比价Calender的先后用after()/before()

用java.unil.TimeZone的getDefault()取得默认的时区信息

人类时间:LocalDateTime(包括日期与时间),LocalDate(只有日期),LocalTime(只有时间)
取得代表月份的数字不要用oridinal()要用getValue()

截图:

图1

图2

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

1.参考图1,不知道为什么显示在上海,不是北京吗?时区也是北京没错

2.参考图2,之前输1975-5-23没事,我以为parse能这样用,后面发现其实不是的

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

抄代码,基本没有

本周代码托管截图

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 1000行 16篇 300小时
第一周 20/20 1/1 8/8
第二周 71/91 1/2 9/17
第三周 229/320 1/3 13/30
第四周 280/600 1/4 16/46
第五周 500/1100 1/5 18/64
第六周 200/1300 2/7 12/76
第七周 300/1600 2/9 14/90

参考资料

原文地址:https://www.cnblogs.com/20145120hxx/p/5401417.html