Consturctrue of software知识点笔记第6&7章

错误与异常处理

1.异常的分类
在这里插入图片描述
try 探测异常 catch
finally之下的语句一定执行
throws定义异常(规约的一部分
throw直接抛出异常

2.Uncheck vs. Checked
在这里插入图片描述
check异常:

  1. 必须捕获,否则无法通过编译
  2. 本身出现错误主动抛出
  3. 调用的方法出现问题,继续抛出

java中任一程序都不会throws一个runtime异常 ,check异常可能会
在这里插入图片描述

断言和防御型编程& debugging

1.Assertion 断⾔ :保证程序正确性

  • 不应该存在程序发布的版本中
  • 只⽤来处理内部错误
  • 设置按钮才能打开

2.defensive pngnamig防御式编程

  • 处理不正确的情况
  • 设置路障:把错误输⼊过滤掉 (隔离仓)->代理模式

3.诊断
①测量:日志、分析工具
②分治:二分查找、切分模块、防狼围栏算法
③切片:与当前输出相关的部分
④寻找差异(版本之间)

4.基于差异的调试
①执⾏次数少的语句更有可能是错的
②软硬件、输⼊⽂件等

5.符号化:⽤符号值输⼊,较复杂
6.调试器 7.网上搜……8.日志
在这里插入图片描述
在这里插入图片描述
打印debug→发布的软件不应该存在,注释掉
在这里插入图片描述

并发(Concurrency)

①多线程程序 ②分布式程序
在这里插入图片描述
1.两个处理器共享内存/同⼀台机器上的两个程序,共享⽂件系统
同⼀个java程序内两个线程共享java对象
2.通过管道连接进⾏通讯

进程(私有空间,彼此隔离)=虚拟机
进程拥有整台计算机的资源
多进程之间不共享内存(进程-进程只能消息传递)线程都可以
⼀般进程=程序=应⽤(多个进程)

线程(程序内部的控制机制)=虚拟cpu
在这里插入图片描述
①Java提供线程类:对其进⾏继承(不推荐)
②从Runnable 接⼝构造Thread对象
在这里插入图片描述
在这里插入图片描述
还是需要借⽤thread类中的start来调⽤(唯一调用方法)

Java匿名类
在这里插入图片描述
防止rist-condition
①多线程间禁⽌共享数据 ×
②只读⽽不修改 immutable类 × 有时要⽤mutable
③将变量变为线程安全(其每个操作都是原子操作) via装饰模式

  1. 不要保留别名→彻底销毁
  2. 在线安集合上 iterator 也是不安全的 (除非lock机制 )
  3. collection类可能产⽣竞争 (多个放在⼀起)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值