极限编程
测试先行,结对编程(要求两个人水平相当。能够提高效率,不易出错,而且编程者无法偷懒哈)
看过程序员上面的一篇文章,极限编程具有良好的实践性比如:测试驱动开发,持续集成,用户故事。测试驱动保证了开发人员的编码质量。持续集成保证了每天完成的任务都能够成功集成到系统中,保持项目的持续进展。而用户故事既可以用于开发人员将其实现,也可以便于测试人员在最后进行系统测试时有所依据。
软件开发活动:
需求分析(对待开发的软件提出的需求进行分析并给出详细的定义并对其加以确切的描述,然后编写出软件需求说明书),
系统设计(设计人员把已确定的各项需求转换成相应的体系结构),
系统实现(把软件设计转换成计算机可以接受的程序代码,并在实际环境中得以实现),
软件测试(保证软件质量的重要手段,贯穿于软件生命周期的各个阶段),
运行和维护(软件在运行的过程中由于多方面的原因对其进行的修改)
面向对象:
类---->实例
属性(数据,状态)
方法(动作,行为)
今天查看jdk的api发现,StringBuffer和StringBuilder的区别 :
此类(StringBuilder)提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快
Deque接口的方法:
抛出异常 返回特殊值
插入 add(e) offer(e)
移除 remove() poll()
检查 element() peek()
如果可能,offer方法可插入一个元素,否则返回 false。这与 Collection.add 方法不同,该方法只能通过抛出未经检查的异常使添加元素失败。
offer 方法设计用于正常的失败情况,而不是出现异常的情况,例如在容量固定(有界)的队列中。
remove() 和 poll() 方法可移除和返回队列的头。到底从队列中移除哪个元素是队列排序策略的功能,而该策略在各种实现中是不同的。
remove() 和 poll() 方法仅在队列为空时其行为有所不同:remove() 方法抛出一个异常,而 poll() 方法则返回 null。
element() 和 peek() 返回,但不移除,队列的头。