热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

20155315201620172《Java程序设计》第七周学习总结

教材学习内容总结第12章Lambda语法Lambda定义一个不用被绑定到一个标识符上,并且可能被调用的函数。在只有Lambda表达式的情况下,参数的类型

教材学习内容总结

第12章 Lambda语法

Lambda定义

  • 一个不用被绑定到一个标识符上,并且可能被调用的函数。
  • 在只有Lambda表达式的情况下,参数的类型必须写出来,如果有目标类型的话,在编译程序可推断出类型的情况下,就可以不写出Lambda表达式的参数类型。
  • Lambda表达式本身是中性的,不代表任何类型的实例,可用来表示不同目标类型的对象操作。
  • Lambda表达式在平行设计的时候,能够进行并行处理。

第13章:

1.时间

  • 世界时:又称UT时间,借由观测远方星体跨过子午线而得
  • 国际原子时:又称TAI时间,将秒的国际单位定义为铯原子辐射震动9192631770周耗费的时间
  • 世界协调时间:又称UTC时间由于TAI时间每秒是固定的,然而地球自转会越来越慢,为了保持TAI和UT时间不要差距过大,提出了折中的世界协调时间
  • Unix时间:以1970年1月1日00:00:00为起点
  • epoch:不少Unix的系统、平台、软件都选择这个时间作为时间表的起点

2.年历

  • 儒略历:如今公历的前身,用来取代罗马历,四年一闰年
  • 格里高利历:改革了儒略历
  • ISO 8601标准:ISO 8601并非年历系统,而是时间日期表示方法的标准,用统一时间日期的数据交换格式,如yyyy-mm-ddTHH:MM:SS.SSS
  • 认识时区:一般是经度偏移15度偏移一个小时,然而许多国家领土广阔,有多个时间反而困扰,如中国就只采用单一时区

3.Date和Calendar

  • 时间轴上瞬间的date:使用Date实例的各getTime可以获得epoch毫秒数,Data实例只用来当做时间轴上的某一瞬间
  • DateFormat:DataFormat可以对字符串格式进行处理,分别有getDateInstance()、getTimeInstance()、getDateTimeInstance()等静态方法 ,SimpleDateFormat还有个parse()方法,可以按构建SimpleDateFormat时指定的格式将指定字符串改为Date实例
  • Calendar:格式化时间日期需要DateFormat,如果想取得某个时间日期信息,对时间日期进行操作,需要使用Calendar实例
  • Timezone:一般都会使用默认时区,若要修改,可以使用java.util.Timezone中的getDefault()来取得默认时区信息

4.新时间日期API

  • 机器时间观点:Date实例应该只代表了机器观点的时间信息,真正可靠的只有内含的epoch毫秒数

  • localDateTime、LocalTime和LocalTime只有对时间的描述,并没有时区信息,如果定义了不存在的日期,就会跑出DateTimeException
  • ZoneDateTime和OffsetDateTime:如果时间日期需要带有时区,可以基于localDateTime、LocalTime和LocalTime等来不齐缺少的信息
  • Year YearMonth Month和MonthDay:如果要取得想要的月份数则需要使用getValue()方法
  • 对时间的运算:使用Calendar可以进行时间运算,jdk8中也提供了更加方便的时间运算方法以及输出格式,操作相应的temporal类即可
  • 年历设计系统:java.time中的类在需要实行年历系统时都是采用单一的ISO8601系统,如果需要其他年历系统则需要java.time.chrono操作java.time.chrono.Chronology接口的类

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

  • 问题: 如何取得系统时间和时区信息
  • 解决:
    • 若需要时区信息,可基于上述三个时间描述的ZoneDateTime和OffsetDateTIme。
    • 想要取得系统时间,方法之一是使用System.currentTimeMillis()方法

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

  • 代码链接
  • 编译后运行
    1071536-20170409181451066-1072585222.png
  • .format(DateTimeFormatter.ofPattern("E MM/DD/YYYY"))删掉
    1071536-20170409182523175-1243975378.png

    代码托管

  • 用statistics脚本查看代码行数
    1071536-20170409220154003-1796315063.png

  • 代码提交结果
    1071536-20170409220557550-990195807.png

上周考试错题总结

  • 5.以下()方法会使线程进入阻塞状态?
    • A.Thread.sleep()
    • B.wait()
    • C.notify()
    • D.interrupt()

正确答案: A B

理解情况:
Thread.sleep()使程序进入睡眠状态以减缓线程,使线程进入阻塞状态;java.lang.Object.wait()这个对象使当前线程等待,直到其他线程调用notify()方法或notifyAll()方法。

  • 7.调用线程的interrupt()方法 ,会抛出()异常对象?
    • A.IOException
    • B.IllegalStateException
    • C.RuntimeException
    • D.InterruptedException
    • E.SecurityException

正确答案: D E

理解情况:

1.interrupt()的作用是中断本线程的执行。

2.本线程中断自己是被允许的;其它线程调用本线程的interrupt()方法时,会通过checkAccess()检查权限。这有可能抛出SecurityException异常。

3.如果本线程是处于阻塞状态:调用线程的wait(), wait(long)或wait(long, int)会让它进入等待(阻塞)状态,或者调用线程的join(), join(long), join(long, int), sleep(long), sleep(long, int)也会让它进入阻塞状态。若线程在阻塞状态时,调用了它的interrupt()方法,那么它的“中断状态”会被清除并且会收到一个InterruptedException异常。

  • 10.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

理解情况:没有ParallelStream等类,所以A和E是不正确的。 流类中定义的方法来创建一个平行流从现有流平行();因此C F是正确的,是不正确的。 集合类中定义的方法来创建一个平行流从收集parallelStream();因此B D是正确的和错误的。

  • 11.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

理解情况:A C D F

  • 17.• 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

理解情况:一个控制台JVM创建对象。 因为只有一个存在,它是一个单例,mak - 荷兰国际集团(ing)选项C正确的。 如果程序运行的环境中没有一个控制台,系统。 控制台()返回null,D也正确。 其他报表控制台 不正确的。

结对及互评

  • 结对对象码云链接
  • 结对对象博客链接
  • 结对照片
    1071536-20170409201744753-832474039.jpg

  • 结对学习情况
    交流代码上的错误并互相改正,学习第十二章、第十三章的内容,并检查以前的代码。同时,互相学习实验内容。

评分标准(满分10分)

  1. 从0分加到10分为止
  2. 正确使用Markdown语法(加1分):
    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  3. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  4. 教材学习中的问题和解决过程, 一个问题加1分

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

  6. 本周有效代码超过300分行的(加2分)
  • 一周提交次数少于20次的不加分

6 其他加分:

  • 周五前发博客的加1分
    - 感想,体会不假大空的加1分
    - 排版精美的加一分
    - 进度条中记录学习时间与改进情况的加1分
    - 有动手写新代码的加1分
    - 课后选择题有验证的加1分
    - 代码Commit Message规范的加1分
    - 错题学习深入的加1分
    7 扣分:
    - 有抄袭的扣至0分
    - 代码作弊的扣至0分

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

  • 参考示例

    点评过的同学博客和代码

  • 20155237
  • 20155308
  • 20155209
  • 20155304
  • 20155310

体会

这一周主要看的是时间与日期,对计算机的工作原理及程序所需要的基本要素都有进一步的理解。这周的实验是基础操作,尽管简单,但是在编辑代码的时候还是会出错。之前都是用的JDB调试,但是实验要求用IDEA,不是很习惯。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周20/201/110/10安装了JDK、IDEA和Git,写了第一个Java程序
第二周97/1172/320/30用Linux上传代码,熟悉修改文件的命令行
第三周336/4532/435/65在Linux上安装JDK和IDEA,更熟悉vi的操作指令以及修改时需要注意的地方。
第四周851/13041/525/90学习用JDB调试程序
第五周834/21381/732/122能自己设计简单的程序,遇到问题也基本上能通过前面的学习和查资料解决,还有问题没有得到解决。
第六周573/27111/815/137理解课本中的内容并自己把之前的代码加以改正,更理解程序的作用,继续学习用JDB调试程序
第七周400/31112/1020/157用IDEA编辑并调试程序,设置断点,完成了实验一
  • 计划学习时间:25小时
  • 实际学习时间:20小时

参考资料

  • Java学习笔记(第8版)
  • 《Java学习笔记(第8版)》学习指导

转:https://www.cnblogs.com/-zyl/p/6686778.html



推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
author-avatar
rockminer
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有