1.本周学习总结

2.书面作业

2.1常用异常

2.1.1自己以前编写的代码中经常出现什么异常、需要捕获吗(为什么)?应如何避免?

  • 算术异常ArithmeticException(除数为0的情况)
  • 类型强制转换异常ClassCastException(类型强制转换过程中,不能进行转换的情况)
  • 数组越界异常ArrayIndexOutBoundsException(访问数组中的一个非法元素)
  • 上述常发生的异常都是RuntimeException的子类,不一定要捕获;
  • 解决方法:遇到除数为0的情况单独分析;考虑清楚类型转换过程是否恰当,不恰当时则可选择不用此方法的类型转换;访问数组元素时,使用for循环,在数组.length()范围内访问,否则跳出循环

2.1.2什么样的异常要求用户一定要使用捕获处理?

  • RuntimeException异常是Exception异常的子类;继承RuntimeException异常的不一定要捕获;凡是直接继承自Exception的异常都需要捕获处理

2.2处理异常使你的程序更加健壮

2.2.1实验总结。并回答:怎么样才能让你的程序更加健壮?

  • 本题按照题意思路进行即可,在try-catch模块中,在遇到字符型转换成Integer型失败时,重新输入使用i--;最后打印Arrays.toString()即可

  • 在方法中尽量要有try-catch模块,避免运行时报错
  • 使用try-catch模块时,尽量多用finally语句,进行资源的释放
  • 在进行多异常捕获的时候,最后建议加上Exception异常做没有考虑到的异常捕获
  • 对于for循环for(int i=o;i<list.size();i++)显然不如for(int i=o;list!=null&&i<list.size();i++)健壮

参考资料

2.3throw与throws

2.3.1Integer.parsetInt一开始就有大量的抛出异常的代码,这种做法有什么好处?

  • 让编译者知道自己在转制过程所遇到的异常问题,进而尽量规避异常
if (s == null) s为空
if (radix < Character.MIN_RADIX)
if (radix > Character.MAX_RADIX)超限

2.3.2结合自己编写的程序与3.1,分析自己编写的方法抛出异常时一般需要传递给调用者一些什么信息?

  • begin<end抛出IllegalArgumentException异常

    begin<0抛出IllegalArgumentException异常

    end>arr.length抛出IllegalArgumentException异常

2.4用异常改进ArrayIntegerStack

2.4.1结合6-3代码,回答使用抛出异常的方式代表程序运行时出错有什么好处?比单纯的返回错误值,有何优点?

  • 抛出异常,可视为一个断点,便于修改此部分的错误代码,更有针对性;单纯的返回错误值,就相对来说不那么快速且直接的找到错误点,耗时

2.4.2什么时候该使用throw关键字?

  • throw 关键字通常在方法体中,并抛出一个某类的异常对象;且throw语句抛出的只能是类Throwable或其子类的实例对象;程序在执行到throw语句时不会再执行后面的语句;如果抛出的是RuntimeException或Error,则可以选择性地处理该异常

2.4.3如果一个方法内部的内码抛出的是RuntimeException类型的异常,那么方法声明是否应该使用throws关键字,如果使用throws关键字声明该方法抛出的异常,能给我们带来什么好处吗?

  • 抛出的是RuntimeException类型的异常时,没有强制使用throws关键字;如果使用throws关键字声明该方法抛出的异常,可中断运行,找出错误点所在部分

2.5函数题-多种异常的捕获

2.5.1结合6-1代码,回答:一个try块中如果可能抛出多种异常,且异常之间可能有继承关系,捕获时需要注意些什么?

  • 因为异常之间可能有继承关系,捕获的时候就需要先捕获子类异常,再捕获父类异常;

    本题应该先捕获NumberFormatException,再捕获IllegalArgumentException,最后再捕获Exception(NumberFormatExceptionIllegalArgumentException的子类;IllegalArgumentExceptionException的子类)

2.5.2一个try块中如果可能抛出多种异常,使用Java8的多重异常捕获语法需要注意些什么?

  • 对于每一个异常应分别写相应的catch块,且子类异常应写在父类异常之前;

    如果相应异常的操作相同,可使用父类Exception代表所有异常

2.6为如下代码加上异常处理

byte[] content = null;
FileInputStream fis = new FileInputStream("testfis.txt");
int bytesAvailabe = fis.available();//获得该文件可用的字节数
if(bytesAvailabe>0){
content = new byte[bytesAvailabe];//创建可容纳文件大小的数组
fis.read(content);//将文件内容读入数组
}
System.out.println(Arrays.toString(content));//打印数组内容

2.6.1改正代码,让其可正常运行。注1:里面有多个方法均可能抛出异常。注2:要使用finally关闭资源。

2.6.2结束处理异常和使用finally关闭资源需要注意一些什么?

  • try-catch-finally语句中,finally语句中的内容一定是需要执行的;但是finally中也可能出现异常,所以必要时在finally中嵌套使用try-catch

2.6.3使用Java7中的try-with-resources来改写上述代码实现自动关闭资源。简述这种方法有何好处?

  • try-with-resources保证资源关闭时,自动调用close函数;大大简化异常出现的次数及分布情况

2.7面向对象设计作业(分组完成,每组不超过3个同学)

登录lib.jmu.edu.cn,对图书进行搜索。然后登录图书馆信息系统,查看我的图书馆。如果让你实现一个图书借阅系统,尝试使用面向对象建模。

2.7.1该系统的使用者有谁?

  • 学生、教师职工、后台管理人员

2.7.2主要功能模块(不要太多)及每个模块的负责人。下周每个人要提交自己负责的模块代码及运行视频。

  • 学生、教师职工:

  • 账户登录

    图书查询

    图书借阅

    图书归还

    查阅账户信息

    退出系统

  • 后台管理人员:

  • 账户信息管理

    图书查询

  • 初期目标是先实现学生、教师职工的功能

  • 组员:林俊伟(负责账户登录和图书查询)

    王彩云(负责图书借阅和图书归还)

    罗佳(负责查阅账户信息和退出系统)

2.7.3该系统的主要的类设计及类图(可用)

2.7.4你准备如何存储图书信息、解决信息、读者信息等

  • 想过使用动态数组存储相关信息,但是一旦信息量繁杂巨大时,就不便操控;可以使用文件(读入读出)相关信息

3.码云及PTA

3.1码云代码提交记录

3.2截图PTA题集完成情况图

3.3统计本周完成的代码量

周次 总代码量 新增代码量 总文件数 新增文件数
第一周 189 189 10 10
第二周 304 304 9 9
第三周 557 557 10 10
第四周 621 621 8 8
第五周 326 326 7 7
第六周 972 972 12 12
第七周 338 338 4 4
第八周 379 379 6 6
第九周 492 492 5 5
第十周 473 473 6 6

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

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

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  2. Java程序设计第十周学习总结

    Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...

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

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

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

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

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

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

  6. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

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

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

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

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  9. 20172325 2018-2019-2 《Java程序设计》第九周学习总结

    20172325 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 图的定义 图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和 ...

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

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

随机推荐

  1. 权限的分类(shiro项目中来的五)

    第一种权限:菜单栏展示还是不展示的权限(粗颗粒) 实现方法,在SYS_ROLE表中添加一个字段rights,通过 public static BigInteger sumRights(String[] ...

  2. 实例 centos自动挂载、备份windows共享文件夹,并删除第7日前当天的备份

    此为用户twk的备份执行方案(192.168.42.246虚拟机数据库,备份到192.168.42.147的第二硬盘)此为用户twk的备份执行方案(192.168.42.5虚拟机数据库,备份到192. ...

  3. Spring对IOC的理解

    一.IOC控制反转和DI依赖注入 1.控制反转,字面可以理解为:主动权的转移,原来一个应用程序内的对象是类通过new去主动创建并实例化的,对对像创建的主动权在程序代码中.程序不仅要管理业务逻辑也要管理 ...

  4. Css Secret 案例Demo全套

    Css Secret 案例全套 github地址 案例地址 去年买了一本CSS揭秘的css专题书,该书揭示了 47 个鲜为人知的 CSS 技巧,主要内容包括背景与边框.形状. 视觉效果.字体排印.用户 ...

  5. Thinking in Java 第二章学习笔记

    Java虽基于C++,但相比之下,Java是一种更加纯粹的面向对象程序设计语言. 在Java的世界里,几乎一切都是对象,而Java中的全部工作则是定义类,产生那些类的对象,以及发送消息给这些对象. 尽 ...

  6. Redis 桌面管理器

    使用Redis桌面管理器,可以方便开发人员进行开发测试,对Redis存储内容进行可视化管理. 下载安装:https://redisdesktop.com/download 1. 为了方便测试,打开re ...

  7. call是什么?一次说个明白

    首先简单粗暴的从例子中看概念 var a = {}; function foo() { this.name = "hello"; this.age = 100 } foo.call ...

  8. Unity服务端链接MySQL数据库

    链接数据库,可以分为以下几个流程: 链接MySQL(数据库地址.端口.用户名.密码) 选择数据库 执行sql语句 关闭数据库 转换为代码如下: using System; using MySql.Da ...

  9. SpringBoot就是这么简单

    一.SpringBoot入门 今天在慕课网中看见了Spring Boot这么一个教程,这个Spring Boot作为JavaWeb的学习者肯定至少会听过,但我是不知道他是什么玩意. 只是大概了解过他是 ...

  10. [Bzoj 2547] [Ctsc2002] 玩具兵

    2547: [Ctsc2002]玩具兵 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 317  Solved: 152[Submit][Status] ...