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

教材学习内容总结

  • Lambda表达式的优点:更加紧凑的代码、修改方法的能力、更好地支持多核处理

  • “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。

  • 函数式接口:Functional Interface.

    定义的一个接口,接口里面必须 有且只有一个抽象方法 ,这样的接口就成为函数式接口。

    在可以使用lambda表达式的地方,方法声明时必须包含一个函数式的接口。

    (JAVA8的接口可以有多个default方法)

  • 任何函数式接口都可以使用lambda表达式替换。

    例如:ActionListener、Comparator、Runnable

    lambda表达式只能出现在目标类型为函数式接口的上下文中。

  • 基本语法:

    (parameters) -> expression 或 (parameters) ->{ statements; }

    即: 参数 -> 带返回值的表达式/无返回值的陈述

  • 优点:

    1.极大的简化代码。去除了很多无用的Java代码,使得代码更为简洁明了。

    2.比匿名内部类更加高效(不确定)。编译器会生成专门的lambda方法,可以使用javap -p查看编译过后的代码

  • 缺点:

    1.可读性差。在代码简洁的情况下,另一方面又让大多程序员很难读懂。因为很少程序员接触使用它。

    (不过这个缺点不是本身缺点,而且源于程序员较少使用)

  • Java中6个时间类:

    java.util.Date java.sql.Date  java.sql.Time  java.sql.Timestamp java.text.SimpleDateFormat java.util.Calendar

  • java.util.Date、java.util.Calendar、java.sql.Timestamp具有的时间日期组件(而且他们具有无参构造方法),java.sql.Date和java.sql.Time只有时间或日期组件。

  • Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。若需要修改时间显示的格式可以使用“SimpleDateFormat(String pattern)”方法。

  • 抽象类 Calendar 提供了一组方法,允许把以毫秒为单位的时间转换成一些有用的时间组成部分。Calendar 不能直接创建对象,但可以使用静态方法 getInstance() 获得代表当前日期的日历对象

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

  • 问题1:Java中Lambda有什么用?
  • 问题1解决方案:Java中的lambda,主要是为了支持函数式编程,只有在Java 8中才引入了lambda

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

  • 问题1:

    编译器将会显示以下错误信息:

    在以下方法或属性之间的调用不明确:

    “ConsoleApplication1.Test.Print(ConsoleApplication1.Test.AddHandler)”和“ConsoleApplication1.Test.Print(ConsoleApplication1.Test.AddHandler)”
  • 问题1解决方案:必须明确数据类型给编译器,如下:



    这样我们的代码就能编译通过了。

代码托管



上周考试错题总结

  • 下面哪条命令可以把 f1.txt 复制为 f2.txt ?

    A .

    cp f1.txt f2.txt

    B .

    copy f1.txt f2.txt

    C .

    cat f1.txt > f2.tx

    D .

    cp f1.txt | f2.tx

    E .

    copy f1.txt | f2.tx

    正确答案: A C

  • 如果有以下代码段:

    Thread thread = new Thread(new ________________() {

    public void run() {...}

    });

    空白部分指定哪些类型可以通过编译?

    A .

    Runnable

    B .

    Thread

    C .

    Future

    D .

    Executor

    正确答案: A B

  • 调用线程的interrupt()方法 ,会抛出()异常对象?

    A .

    IOException

    B .

    IllegalStateException

    C .

    RuntimeException

    D .

    InterruptedException

    E .

    SecurityException

    正确答案: D E

  • 现有

  1. class Calc {
  2. public static void main(String [] args) {
  3. try {
  4.     int x = Integer.parselnt ("42a") ;
  5. //insert code here
  6.     System.out.print ("oops");
  7. }
  8. }
  9. }

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

    A .

    catch (IllegalArgumentException e) {

B .

} catch (IllegalStateException c) {

C .

} catch (NumbelFormatException n) {

D .

} catch (ClassCastException c) {

正确答案: A C

  • Given an instance of a Stream, s, and a Collection, c, which are valid ways of creating a parallel stream? (Choose all that apply.)

    给定一个Stream的实例s, 一个Collection的实例c, 下面哪些选项可以创建一个并行流?

A .

new ParallelStream(s)

B .

c.parallel()

C .

s.parallelStream()

D .

c.parallelStream()

E .

new ParallelStream(c)

F .

s.parallel()

正确答案: D F

  • Which of the following statements about the Callable call() and Runnable run() methods are correct? (Choose all that apply.)

    A .

    Both can throw unchecked exceptions.

    B .

    Callable takes a generic method argument.

    C .

    Callable can throw a checked exception.

    D .

    Both can be implemented with lambda expressions.

    E .

    Runnable returns a generic type.

    F .

    Callable returns a generic type.

    G .

    Both methods return void

    正确答案: A C D F

  • What are some reasons to use a character stream, such as Reader/Writer, over a byte stream, such as InputStream/OutputStream? (Choose all that apply.)

A .

More convenient code syntax when working with String data

B .

Improved performance

C .

Automatic character encoding

D .

Built-in serialization and deserialization

E .

Character streams are high-level streams

F .

Multi-threading support

正确答案: A C

  • Assuming zoo-data.txt is a multiline text file, what is true of the following method?

    private void echo() throws IOException {

    try (FileReader fileReader = new FileReader("zoo-data.txt");

    BufferedReader bufferedReader = new BufferedReader(fileReader)) {

    System.out.println(bufferedReader.readLine());

    }

    }

A .

It prints the first line of the file to the console.

B .

It prints the entire contents of the file.

C .

The code does not compile because the reader is not closed.

D .

The code does compile, but the reader is not closed.

E .

The code does not compile for another reason.

正确答案: A 你的答案

  • What is the result of executing the following code? (Choose all that apply.)

    String line;

    Console c = System.console();

    Writer w = c.writer();

    if ((line = c.readLine()) != null)

    w.append(line);

    w.flush();

A .

The code runs without error but prints nothing.

B .

The code prints what was entered by the user.

C .

An ArrayIndexOutOfBoundsException might be thrown.

D .

A NullPointerException might be thrown.

E .

An IOException might be thrown.

F .

The code does not compile.

正确答案: B D E

  • Which of the following are true? (Choose all that apply.)

A .

A new Console object is created every time System.console() is called.

B .

Console can only be used for reading input and not writing output.

C .

Console is obtained using the singleton pattern.

D .

When getting a Console object, it might be null.

E .

When getting a Console object, it will never be null.

正确答案: C D

  • Suppose that the file c:\book\java exists. Which of the following lines of code creates an object that represents the file? (Choose all that apply.)

A .

new File("c:\book\java");

B .

new File("c:\book\java");

C .

new File("c:/book/java");

D .

new File("c://book//java");

E .

None of the above

正确答案: B C

  • Which of the following are built-in streams in Java? (Choose all that apply.)

A .

System.err

B .

System.error

C .

System.in

D .

System.input

E .

System.out

F .

System.output

正确答案: A C E

结对及互评

评分标准

  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分

点评模板:

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

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

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

  • 参考示例

点评过的同学博客和代码

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

本周学习的两章知识较为简单,但需要和之前学习的内容基础结合起来,所以前面的基础很重要,在学习过程中我不断翻阅前面知识,结合起来学习会使效率提高。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 2/2 20/20
第二周 140/160 2/4 18/38
第三周 113/273 1/5 20/58
第四周 335/608 1/6 20/78
第五周 1159/1408 1/7 30/108
第六周 452/1860 1/8 20/128
第七周 343/2203 1/9 30/158

20155302 2016-2017-2 《Java程序设计》第七周学习总结的更多相关文章

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

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

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

    20155302 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 基本数据库操作相关的JDBC接口或类是位于java.sql包中.在程序中要取得数据库联机,我 ...

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

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

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

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

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

    20155328 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 16.1 JDBC入门 JDBC是Java联机数据库的标准规范,定义一组标准类与接口,应用程 ...

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

    20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...

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

    20155320 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 ...

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

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

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

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

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

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

随机推荐

  1. 评论alpha发布

    第一组:新蜂小组 题目:俄罗斯方块 评论:很荣幸被邀请体验此游戏,感到加速下落时不是很灵敏,没有计分,页面不够美观(据说还在改善),整体框架已完成,基本功能已具备. 第二组:天天向上 题目:连连看 评 ...

  2. 【Leetcode】143. Reorder List

    Question: Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You ...

  3. oracle 3大范式 理解

    CREATE OR REPLACE PACKAGE pack3 AS FUNCTION fun_calc (num1 NUMBER ,num2 NUMBER ) RETURN number ; fun ...

  4. [转帖]CPU 的缓存

    缓存这个词想必大家都听过,其实缓存的意义很广泛:电脑整机最大的缓存可以体现为内存条.显卡上的显存就是显卡芯片所需要用到的缓存.硬盘上也有相对应的缓存.CPU有着最快的缓存(L1.L2.L3缓存等),缓 ...

  5. [官网]SQLSERVER ON linux 的最低要求 以及安装方法

    快速入门:在 Red Hat 上安装 SQL Server 并创建数据库 总体说明: 适用于: SQL Server (仅限 Linux)Azure SQL 数据库Azure SQL 数据仓库并行数据 ...

  6. [转帖]技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解

    技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解    http://www.52im.net/thread-1309-1-1.html   本文来自腾讯资深研发工程师罗成的技术分享, ...

  7. 【Linux笔记】ldconfig、ldd

    一.ldconfig ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig. ldconfig 命令的用途,主要是在默认搜寻目录(/ ...

  8. Atcoder arc080E Young Maids(线段树+优先队列)

    给出一个n排列,每次可以选择相邻的两个数字放在新的排列首部,问最后形成的新的排列字典序最小是? 考虑新排列的第一个数字,则应是下标为奇数的最小数,下标不妨设为i.第二个数字应该下标大于i且为偶数的最小 ...

  9. OpenSSL 自签名证书

    通过下面9步,可以轻松生成自签名证书. 1.安装.部署OpenSSL 略 2.创建文件夹(下面通常root文件夹).用来放即将创建的各种证书等.如:I:\Key10.167.219.64 3.在roo ...

  10. [洛谷P4091][HEOI2016/TJOI2016]求和

    题目大意:给你$n(n\leqslant10^5)$,求:$$\sum\limits_{i=0}^n\sum\limits_{j=0}^i\begin{Bmatrix}i\\j\end{Bmatrix ...