![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软构复习
reensan
这个作者很懒,什么都没留下…
展开
-
3.2Abstraction data type
ADT由操作定义likeString and SB adt操作的四种类型 构造器、生产器create new objects from old objects of the type,like String.concat() observers、mutator变值器改变对象的属性 4设计抽象类型 良好ADT的设计:靠“经验法则”,提供一组操作,设计其行为规约 spec 设计规则 1、设计简洁、一致的操作 设计一组简单操作,通过简单操作的组合实现复杂的操作。操作的行为应该 是内聚的。 2、 要足以支持cli原创 2020-07-06 16:54:02 · 1435 阅读 · 0 评论 -
chapter7:7.1并发
1什么是并发型编程 并发的两个模型 (1)共享内存(2)消息传递 2进程、线程、时间切片 并发模块的类型:进程和线程 进程:私有空间,彼此隔离 线程:程序内部的控制机制 (1)进程 拥有整台计算机的资源,多进程间不共享内存,进程之间通过消息传递进行协作。 (2)线程 进程=虚拟机;线程=虚拟CPU 线程共享内存(3) Starting a thread in Java1从thread类派生 2从runnable派生 其中就不得不提及匿名类 对于线程的问题其关键就在于run这个函数。 3交错与竞争 (1)原创 2020-07-02 21:11:11 · 125 阅读 · 0 评论 -
6.4代码调试
当防御式编程和测试都无法挡住bug时,debug就不得不做了 为啥debug挺难的 2 Process for debugging (1)重现bug 从最小的测试用例集开始复现错误(2)诊断bug (2)分治 (3)切片 (4)寻找差异 (6)调试器 debugger (7)借鉴别人 3debugging tools (1)暴力debug (2)其他 (1) (2) Post-mortem debugging: stack trace (3)printf (4)logging 见之前写的 (5) C原创 2020-07-01 21:31:15 · 159 阅读 · 0 评论 -
6.3断言与防御式编程
第2种技术——断言、防御式编程,侧重于correctness。 1设计adt回忆 First Defense: Make Bugs Impossible Second Defense: Localize Bugs 2断言 (1)断言是啥 断言:在开发阶段的代码中嵌入,检验某些“假设”是否成立。若成立,表明程序运行正常,否则表明存在错误 (2)使用assert的时机 Java缺省关闭断言,要记得打开(-ea) 断言非常影响运行时的性能 在其他一些开发者眼里,不应该针对参数的合法性使用断言。 即使spec被违原创 2020-07-01 20:26:37 · 208 阅读 · 0 评论 -
6.2错误与异常
1错误与异常 所有异常的基础类是throwable 内部错误:程序员通常无能为力,一旦发生,想办法让程序优雅的结束 异常:你自己程序导致的问题,可以捕获、可以处理 错误分类:1用户输入 2设备错误 3物理限制 3异常处理(讲义没有2我也不知道为啥) (1)异常:程序执行中的非正常事件,导致程序无法再按预想的流程执行 return之外的第二种退出途径 不异常处理的话:正常的逻辑代码与错误处理代码交织在一起 使用异常处理可以将二者分离 (2)异常分类 1、运行时异常 2、其他异常 运行时异常:由程序员在代码里处原创 2020-07-01 15:44:57 · 203 阅读 · 0 评论