20145320 《Java程序设计》第5周学习总结

教材学习内容总结

8.1 语法与继承架构

try、catch

Java中的错误会被包装为对象,而使用trycatch,JVM会执行try区块中的程序代码。若发生错误,执行流程会比对catch括号中声明的类型,是否符号被抛出的错误对象类型,如果是的话就执行catch区块中程序代码

异常继承架构

错误会被包装为对象继承自java.lang.Throwable,他有两个子类java.lang.Errorjava.lang.Exception

Error与其子类代表严重系统错误,建议不用trycatch处理,因为java可能无力回天。

而程序设计本身的错误建议使用Exception实例表现,常称为错误处理为异常处理。

若某个方法声明会抛出Thorwable或子类实例,只要不是属于Errorjava.lang.RuntimeException,就必须明确使用trycatch语法加一处理,或者在方法中使用throws声明这个方法会抛出异常,否则编译失败

认识堆栈追踪

堆栈追踪信息中显示了异常类型,最顶层是异常的根源,但是前提是程序代码中不可有私吞异常的行为、对异常做了不适当的处理,或显示了不正确的信息

8.2 异常与资源管理

若有撰写finally块,则无论try区块中有无发生异常,finally区块一定会被执行。假如在流程中先遇到了return,那么finally块还是先执行在返回值

若一个异常被catch后的处理过程引发另一个异常,会抛出第一个异常作为响应,在java.lang.Throwable中新增了addSuppressed()方法,把第二个异常记录在第一个异常之中。

尝试关闭资源语法也可以同时关闭两个以上对象资源,只要中间以分号分隔。在try的括号中,越后面撰写的对象资源会越早被关闭

9.1 使用Collection架构

认识Collection架构

如同数据结构一样,在java.util.Collection中有增、删、遍历对象

add、

remove、

clear、

size、

iterator



(如图)

具有索引的List

核心方法

add(int index, E element)

remove(int index)

set(int index, E element)

ArrayList相当于数据结构的线性表,

LinkedList相当于数据结构链式表

内容不重复的set

在收集过程中若有相同对象,想要重复收集,可以使用set接口的操作对象

支持队列操作的Queue

除了Collection中的操作之外,Queue还定义了自己的offer()、poll()、peek(),出错时返回特定值



Queue与Deque之间的差别

9.2 键值对应的Map

如网络搜索,根据关键字可以找到对应数据,程序设计中的java.util.Map接口的操作对象用来简历键值对应数据,之后若要取值只要对应的键就可用迅速取得了

常用的Map操作类有HashMap、TreeMap与Properties三种。

如果想取得Map中所有的键,可以调用Map的keySet()返回Set对象。由于键是不重复的,所以使用Set操作返回或者使用values()返回Collection对象

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

对于9.1节中各个类都与数据结构联系紧密,在用计算机知道怎么之前,首先人要知道怎么做,比如一些增删查改的操作。

自己看起来都懂了,但是要自己敲一个代码出来确实有点困难,周四考试就已经体现了这个问题了。

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

public class Main {
public static void main(String[] args){
Object[] objs={"Java","7"};
Integer number =(Integer) objs[1];
System.out.println(number);
}
}

这段代码错在把String型强制为了Int型,则系统就会ClassCastException堆栈追踪

public class Main {
public static void main(String[] args){
try{
int number =Integer.parseInt(args[0]);
System.out.println(number++);
}catch(NumberFormatException ex){
System.out.println("必须输入数字");
}}}

这段代码若在IDE中运行不会显示NumberFormatException,而是ArrayIndexOutOfBoundException。但是若在指令行输入自变量one,就会显示“必须输入数字”

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

随着java的深入学习,我发现课本上的内容已经越来越难懂了,要想真正完全搞懂,不仅要读很多遍书,还要敲很多代码,这些代码最好还是自己原创的。我苦于自己没有这么多时间敲这么多代码,感觉自己被java滚雪球了,不过学了这么久java,发现java里面的知识比c语言更多,比c语言好用一点。

代码托管如图

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 20篇 400小时
第二周 300/500 1/2 18/38
第三周 300/ 800 1/3 22/60
第四周 300/1100 1/4 30/90
第五周 300/1400 1/5 20/110

参考资料

20145320 《Java程序设计》第5周学习总结的更多相关文章

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

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

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. 30秒修复Ubuntu菱形乱码问题

    将语言改为英文,我是按照第三种方式进行的,成功.参考博客: http://blog.sina.com.cn/s/blog_a126a955010180b8.html

  2. iOS定时器

    主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMethod进行倒计时的一些操作,完成时把 ...

  3. java编程eclipse常用快捷键方式

    Eclipse 常用快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 1. [ALT+/] 此快捷键为用户 ...

  4. 纯css3绘制扇形

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. jquery插件之文字无缝向上滚动

    该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的无缝向上滚动特效,当鼠标移动到文字上时,向上滚动会停止, ...

  6. ubuntu 安装 GCC

    网上查了好多方式,试了一下,最简单可行的是: sudo apt-get install  build-essential 等待执行完,输入 gcc -v 输出: Using built-in spec ...

  7. ACM Steps 2.1.4

    Largest prime factor   Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...

  8. CSS3初学篇章_2(伪类选择符)

    id与class选择符 id与class选择符都是自定义标签名字的选择符,但id是唯一的,class却可重复使用. id选择符以"#"定义 class选择符以".&quo ...

  9. C++以对象管理资源

    先看下面一段代码: class Node {}; Node* CreateNode() { } void Solve() { Node *p=CreateNode(); //调用CreateNode函 ...

  10. tomcat域名问题

    首先可以确认,tomcat支持以下的配置: 1.同一个tomcat配置多个端口来发布不同的应用,配置多个<Service>即可; 2.同一个tomcat可以配置多个虚拟主机,以指定不同的域 ...