20145313张雪纯 《Java程序设计》第5周学习总结

20145313张雪纯 《Java程序设计》第5周学习总结

教材学习内容总结

  • JAVA中所有错误都会被打包成对象,可以用尝试(try)捕捉(catch)代表错误的对象后做一些处理。使用try、catch语法,JVM会尝试执行try区块中的程序代码,若发生错误,会跳离错误发生点,比较catch括号中声明的类型,若符合错误类型,则执行catch区块中的程序代码。
  • Error与其子类实例代表严重系统错误,JAVA应用本身是无力回复的,基本不用处理,只需留下日志信息。程序设计本身的错误,应使用Exceptionn或其子类实例来表现,通常称错误处理为异常处理。
  • 受检异常存在的目的在于API设计者实现某方法时,某些条件成立时会引发错误,并且认为调用方法的客户端有能力解决,要求编译程序提醒客户端必须明确处理错误。
  • 如果父类异常对象在子类异常对象之前被捕捉,则catch子类异常对象的区块将永远不会被执行,编译程序会检查出这个错误。
  • 在catch区块进行完部分错误处理后,可以使用throw将异常再抛出。编译程序对于重新抛出的异常类型可以更精准地判断。
  • 若想得知异常发生的根源以及多重方法调用下异常的堆栈传播,可以利用异常对象自动收集的堆栈追踪来取得相关信息。
  • 无论try区块中是否发生异常,若撰写有finally区块,则finally区块一定会被执行。
  • 新增对象的add()方法,移除对象的remove()方法,都定义在java.util.Collection中。逐一取得对象的iteartor()方法定义在java.lang.Iterable中。
  • 数组在内存中是连续的线性空间,根据索引随机存取时速度快,当需要排序是,使用ArrayList可以使程序速度更快。
  • 链接的每个元素会参考下一个元素,有利于调整索引顺序。

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

第八章课后习题8.

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

执行时若没有指定命令行自变量,以下描述何者正确?  
 A、 编译错误  
 B、 显示"必须输入数字"  
 C、 显示ArrayIndexOutOfBoundException堆栈追踪   
D、 不显示任何讯息
为什么选择A,而不是B?

代码托管截图

其他

第八章主要说明了代码调试中错误的类型及解决方法,第九章主要说明了数据结构的java实现,可以和数据结构课程相结合。java程序主要是利用定义好的方法实现自己的目的,所以了解相应方法对编程十分重要。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/1 20/20 编写简单程序
第二周 350/550 1/2 30/30 用IDE调试修改程序
第三周 500/1050 1/3 35/85
第四周 500/1550 1/4 30/115
第五周 500/2050 1/5 30/145

参考资料

原文地址:https://www.cnblogs.com/entropy/p/5343228.html