20145319 第五周学习总结

20145319 《Java程序设计》第五周学习总结

教材学习内容总结

本周学习了教材的第八章、第九章,在经过前几周的学习之后,我们大致了解了java中的基础语法,函数构造调用,以及当以项目为基础设计代码时我们该如何使用继承和接口,对java已有初步了解,因此这两章我们要进一步学习的是如何处理程序中的异常状况。

1. 异常处理语法

  1. 定义:java中所有错误都会被打包成一个对象,所以可以尝试(try)捕捉(catch)错误对象,并做出相应处理。
  2. try:多和catch搭配使用,JVM会尝试try区块中的程序代码。如果发生了错误,即立刻跳出错误点,比较catch()中声明的错误类型,如果吻合就执行catch区块中的代码
  3. catch:和try搭配使用,如果catch()声明的错误类型和try区块中的代码错误类型一致,就立刻执行catch区块中的代码
  4. Multi-catch(多重捕捉):在实际中,经常会遇见数个类型的catch区块在做同样的事情,而且catch区块内容都是重复的,这样不仅不方便撰写也不方便维护,这时候可以写成如下模式
    try{
        ;
    }catch(IOException|InterruptedException|ClassCastException){
        ;
    }
    
  5. throws:操作对象抛出受检对象,但目前环境信息却不足以处理异常,则无法使用try、catch处理,此时就要用throws声明此方法会抛出的异常类型或其父类型,否则会编译失败。(在同时使用继承时,如果父类某个方法声明throws某些异常,子类重新定义该方法时不可以throws父类方法中没声明的其他异常。throws父类方法声明的异常的父类
  6. throw:在catch区块操作完部分错误处理之后,可以使用throw再将异常抛出
  7. assert:分为assert booleanexpression;和assert booleanexpression:detailexpression;如果booleanexpression为true则什么都不发生若为false,则会发生java.lang.AssertionError

2. 异常继承架构

  1. 设计错误对象都继承自java.lang.Throwable类,Throwable定义了取得错误信息,堆栈追踪(Stack Trace)等方法,它有两个子类:java.lang.Error和java.lang.Exception

3. 异常和资源管理

  1. finally:在调用文档时,当文档读取完或者不使用时就应该close()关闭文档,但是如果程序在Scanner.close()前发生了异常,该语句就会因中断而不被执行,finally可以和try、catch搭配,若写有fianlly区块,则finally区块就一定要被执行,将Scanner.close();写在fianlly区块中就可以避免上述情况。
  2. Try-With-Resources: 要自动关闭资源的对象撰写在try()中,如果无需catch处理异常,可以不用写,也不用写finally区块

4. Collection架构

  1. 如同数据结构一样,在java.util.Collection中有增、删、遍历对象 add: remove: clear: size: iterator:
  2. set:在收集过程中若有相同对象,想要重复收集,可以使用set接口的操作对象

5.具有索引的List

核心方法 add(int index, E element)、 remove(int index)set(int index, E element)

  1. ArrayList:相当于数据结构的线性表,
  2. LinkedList:相当于数据结构链式表

6. 键值对应的Map

  • 如网络搜索,根据关键字可以找到对应数据,程序设计中的java.util.Map接口的操作对象用来简历键值对应数据
  • 常用的Map操作类有HashMap、TreeMap与Properties三种。
  • 如果想取得Map中所有的键,可以调用Map的keySet()返回Set对象。由于键是不重复的,所以使用Set操作返回或者使用values()返回Collection对象

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

  • 在编写书上课后习题的代码时经常遇见args[0],开始并不清楚args[0]代表什么,只记得在最开始学java时,要打开main方法就一定要写public static void main(String[] args),后面才知道args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名。String[ ] args表示给主方法传一个字符串数组
  • 如何指定命令行自变量?
  • 其实刚开始看的时候有一堆不懂的,现在也并不能说就真的懂了,但是一些零零碎碎的小问题的解决过程就不一一赘述了

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

 代码:

本来书上是问在没有指定命令行自变量的情况下执行程序会发生什么?但是由于自己并不熟悉命令行自变量,也不知怎么指定命令行自变量,只能猜测是catch()中的错误类型不恰当而导致了编译的失败,所以对程序做了一些修改

修改:

改成如上程序之后,没有指定命令行自变量,程序编译通过,运行后输出“输入数字”

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

  • 前几周的学习其实都有点操之过急,正好这几章也有与数据结构相关,可以和数据结构的课程结合起来,接下来的假期正好可以休息一下也可以回顾一下之前学过的和最近所学的数据结构,感觉这样效果会比较好。

学习进度条


代码行数(新增/累积)


博客量(新增/累积)


学习时间(新增/累积)


重要成长


目标


3500行


28篇


300小时


第五周


200/1200


1/5


20/105


第六周


第七周


第八周

参考资料

- ...

时间: 2024-10-09 22:37:54

20145319 第五周学习总结的相关文章

201405644 嵌入式程序设计第五周学习总结

嵌入式课程设计第五周学习总结 标准 I/O 编程 标准 I/O 提供流缓冲的目的是尽可能减少使用 read()和 write()等系统调用的数量.标准 I/O 提供了 3 种类型 的缓冲存储.全缓冲.行缓冲.不带缓冲. 打开文件 打开文件有三个标准函数,分别为:fopen().fdopen()和 freopen().其中 fopen()可以指定打开文件的路径和模式,fdopen()可以指定打开的文件描述符和模式,而 freopen() 除可指定打开的文件.模式外,还可指定特定的 I/O 流. f

2014025689 《嵌入式系统程序设计》第五周学习总结

<嵌入式系统程序设计>第五周学习总结 一.6.5(标准I/O编程)主要涉及的函数及知识点 标准的I/O的三种缓冲存储:全缓冲.行缓冲.不带缓冲. 1. 全缓存:当填满标准I/O缓存后才进行实际的I/O操作 2. 行缓存:当输入或输出中遇到行结束符时,标准I/O库执行I/O操作 3. 不带缓存:标准I/O库不对字符进行缓冲 打开文件的三个标准函数:  fopen().fdopen()和 freopen(). -fopen()可以指定打开文件的路径和模式 函数原型:FILE * fopen(con

20145307《信息安全系统设计基础》第五周学习总结PT2

20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219.html 以下为第二部分 执行汇编命令:gcc –s xxx.c –o xxx.s反汇编命令:objdump –d xxx 64位处理器得到32代码的命令:gcc –m32 –s xxx.c Ltme: 1.三种操作数: 立即数:常数值.表示为$c标准表示的整数. 寄存器:表示某个寄存器的内容. 存储器:根据

信息安全设计基础第五周学习总结

信息安全系统设计基础第五周学习总结 [学习时间:10小时] [学习内容:第三章:程序的机器表示] 一.教材内容 1.X86 寻址方式的变化: 1 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全: 2 8086的分段模式: 3 IA32的带保护模式的平坦模式 2.机器编程的两种抽象: 1)指令集体系结构(Instruction set architecture,ISA)——定义指令格式以及每条指令执行之后对状态的影响.大多数ISA将程序行为描述成按顺序执行的: 2)虚拟地址 3.一些处理

20145317《信息安全系统设计基础》第五周学习总结2

20145317<信息安全系统设计基础>第五周学习总结2 教材学习内容总结 X86 寻址方式经历三代: DOS时代的平坦模式,不区分用户空间和内核空间,很不安全. 8060的分段模式 IA32的带保护模式的平坦模式 程序编程 1.代码含义 gcc -01 -o p p1.c -01 表示使用第一级优化.优化的级别与编译时间和最终产生代码的形式都有关系,一般认为第二级优化-02 是较好的选择. -o 表示将p1.c编译后的可执行文件命名为p 2.机器级编程的两种抽象 指令集结构ISA 是机器级程

第五周学习进度总结

第五周学习进度总结   学习时间 新增代码行 博客量(篇) 知识总结 第五周 15h 125 2 新使用了结对编程方式,效率更高.又近一步加深了对C#语言的学习.

20145301第五周学习总结

20145301第五周学习总结 教材学习内容总结 第八章 8.1 语法与继承构架 什么是异常?在 Java 编程语言中,异常类定义程序中可能遇到的轻微的错误条件.可以写代码来处理异常并继续程序执行,而不是让程序中断. Java 提供了一种异常处理模型,它使您能检查异常并进行相应的处理.它实现的是异常处理的抓抛模型.使用此模型,您只需要注意有必要加以处理的异常情况.Java 提供的这种异常处理模型,代替了用返回值或参数机制从方法返回异常码的手段. 在 Java 中,所有的异常都有一个共同的祖先 T

Java第五周学习总结

20145307 <Java程序设计>第五周学习总结 教材学习内容总结 C8 使用try.catch打包System.in.read(),声明throws java.io.IOException. ·如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执行. ·catch括号中列出的异常不得有继承关系,否则会发生编译错误. ·在catch区块进行完部分错误处理之后,可以使用throw将异常再抛出. ·操作对象异常无法使用try.catch处理时,可由方法的客户端一句当

201671010117 2016-2017-2 《Java程序设计》Java第五周学习心得

Java第五周学习心得       通过这一周的学习,对继承有了一定的了解,但是不是很熟悉,老师上课按以前的方法讲解了第五节的懂得了更深入了一点,还需要多多敲代码来掌握的更深,因为方法突然的改变,还是有一点的不习惯,所以现在还在适应中,感觉部分知识掌握的不是很深入,还需要加强.