20155327 2016-2017-4 《Java程序设计》第七周学习总结

教材学习内容总结

了解Lambda语法

包含三个部分

一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数

一个箭头符号:->

方法体,可以是表达式和代码块,方法体函数式接口里面方法的实现,如果是代码块,则必须用{}来包裹起来,且需要一个return 返回值,但有个例外,若函数式接口里面方法返回值是void,则无需{}

lambda表达式的结构:

参数可以是零个或多个;
参数类型可指定,可省略(根据表达式上下文推断);
参数包含在圆括号中,用逗号分隔;
表达式主体可以是零条或多条语句,包含在花括号中;
表达式主体只有一条语句时,花括号可省略;
表达式主体有一条以上语句时,表达式的返回类型与代码块的返回类型一致;
表达式只有一条语句时,表达式的返回类型与该语句的返回类型一致。

了解方法引用

引用静态方法 ContainingClass::staticMethodName

引用某个对象的实例方法 containingObject::instanceMethodName

引用某个类型的任意对象的实例方法 ContainingType::methodName

引用构造方法 ClassName::new

了解Fucntional与Stream API

标准的API的函数接口:

(1)Consumer函数接口:接受一个自变量,处理后不返回值时,就使用Consumer接口。主要是接受单一对象实例作为自变量,这行为就像是直接消耗了自变量,若真的有结果产生,会以副作用(Side Effect)形式显示,例如改变某对象状态或是直接进行输入输出行为。

(2)Function函数接口:接受一个自变量,然后以该自变量进行计算后传回结果,就可以使用Function接口。这个行为就像是数学函数,例如y=f(x)是根据x的值来计算y的值。

(3)Predicate函数接口:接受一个自变量,然后只传回boolean值,也就是根据传入的自变量直接论断真假的行为,就可以使用Predicate接口。

(4)Supplier函数接口:不接受任何自变量,然后传回值,就可以使用Supplier接口。既然不接受自变量,则返回来源有几个可能性,例如提供容器、固定值、某时间某事物的状态等等。

掌握Date与Calendar的应用

Date:

1.使用Date类代表当前系统时间

               Date d = new Date();
               System.out.println(d);

2,使用Date类代表指定的时间

                        Date d1 = new Date(2009-1900,3-1,9);
                        System.out.println(d1);

Calendar:

1、使用Calendar类代表当前时间

               Calendar c = Calendar.getInstance();

2、使用Calendar类代表指定的时间

               Calendar c1 = Calendar.getInstance();
               c1.set(2009, 3 - 1, 9);                 

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

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX
  • ...

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

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX
  • ...

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 错题1:调用线程的interrupt()方法 ,会抛出()异常对象?
    A .
    IOException

B .
IllegalStateException

C .
RuntimeException

D .
InterruptedException

E .
SecurityException
答案:DE

  • 现有
    class Calc {
    public static void main(String [] args) {
    try {
    int x = Integer.parselnt ("42a") ;
    //insert code here
    System.out.print ("oops");
    }
    }
    }

下面哪行分别插入到第五行,会导致输 "oops" ?

A .
catch (IllegalArgumentException e) {
B .
} catch (IllegalStateException c) {
C .
} catch (NumbelFormatException n) {
D .
} catch (ClassCastException c) {

正确答案: A C

结对及互评

评分标准

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

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

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

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

    • 一周提交次数少于20次的不加分
  6. 其他加分:

    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:
    写的很详细

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

1.正确使用Markdown语法(加1分):
2.模板中的要素齐全(加1分)
3.教材学习中的问题和解决过程, 一个问题加1分,加2分
4.代码调试中的问题和解决过程, 一个问题加1分,加2分
5.本周有效代码超过300分行的(加2分)
6 其他加分:
代码Commit Message规范的加1分
排版精美+1分
错题学习深入的加1分

点评过的同学博客和代码

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

xxx
xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

参考资料

 posted on 2017-04-09 22:58  20155327李百乾-  阅读(346)  评论(5编辑  收藏  举报