
软构复习
reensan
这个作者很懒,什么都没留下…
展开
-
3.2Abstraction data type
ADT由操作定义likeString and SBadt操作的四种类型构造器、生产器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 · 1472 阅读 · 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 · 166 阅读 · 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 · 193 阅读 · 0 评论 -
6.3断言与防御式编程
第2种技术——断言、防御式编程,侧重于correctness。1设计adt回忆First Defense: Make Bugs ImpossibleSecond Defense: Localize Bugs2断言(1)断言是啥断言:在开发阶段的代码中嵌入,检验某些“假设”是否成立。若成立,表明程序运行正常,否则表明存在错误(2)使用assert的时机 Java缺省关闭断言,要记得打开(-ea) 断言非常影响运行时的性能在其他一些开发者眼里,不应该针对参数的合法性使用断言。即使spec被违原创 2020-07-01 20:26:37 · 255 阅读 · 0 评论 -
6.2错误与异常
1错误与异常所有异常的基础类是throwable内部错误:程序员通常无能为力,一旦发生,想办法让程序优雅的结束异常:你自己程序导致的问题,可以捕获、可以处理错误分类:1用户输入 2设备错误 3物理限制3异常处理(讲义没有2我也不知道为啥)(1)异常:程序执行中的非正常事件,导致程序无法再按预想的流程执行return之外的第二种退出途径不异常处理的话:正常的逻辑代码与错误处理代码交织在一起使用异常处理可以将二者分离(2)异常分类1、运行时异常 2、其他异常运行时异常:由程序员在代码里处原创 2020-07-01 15:44:57 · 254 阅读 · 0 评论