目录
1、ADT
java是面向对象的编程语言,ADT和OOP在java语言中经常用到。
ADT即Abstract Date Type(抽象数据类型),通常是用一个或多个类既其中的成员变量和成员方法,来抽象表示一个具体的事物即与此事物相关的操作。
ADT具有一下几个能表达抽象思想的词:
·抽象化:用更简单、更高级的思想胜率或隐藏低级细节。
·模块化:将系统划分为组件或模块,每个组件可以设计,实施,测试,推理和重用,与系统其余部分分开使用。
·封装:围绕模块构建墙,以便模块负责自身的内部行为,并且系统其他部分的错误不会损坏其完整性。
·信息隐藏:从系统其余部分隐藏模块实现的细节,以便稍后可以更改这些细节,而无需更改系统的其他部分。
·关注点分离:一个功能知识单个模块的责任,而不跨越多个模块。
2、OOP
OOP即Object Oriented Programming(面向对象编程),java就是面向对象的编程语言。对java来说,所有的东西都是对象,程序是一大堆对象的组合,所有的操作都是针对对象的。对象可以被想象成一种新型变量,它保存着数据,但可要求它对自身进程操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。同样以上图举例,将一篇Tweet抽象为一个Tweet对象后,所有对该Tweet的操作都可编程为对该对象的操作。
3、面向可复用性、可维护性、健壮性、可理解性、性能
大型软件项目的管理和编程往往不是一个人可以完成的,其中涉及到团队合作,这就要求我们编写的软件具有可复用性、可维护性、健壮性、可理解性。而这类软件的运行就不是我们所编写的HelloWorld可以比的了,如果写的程序需要运行很久,并且对内存等硬件条件要求很高的话,那就算不得一个好程序了,因此这提醒了我们要注意程序的性能。
可复用性表示可以被其他程序直接调用。程序的可复用性使得代码量大大减少,并在一定程度上提高了可理解性。在软件的开发过程中,源代码的编写者和维护着往往不是同一个人,这就给代码的维护增加了难度。因此需要开发者写具有可维护性和可理解性的代码。可维护性往往要求代码有很好地结构和包装性。健壮性指代码的容错率,好的代码不容易出错或者及时出错也能尽快发现。可理解性指代码应容易看懂,便于程序员对代码的理解。这样无论是对代码的扩展还是对代码的维护都会变得十分简单。而要提高代码的可理解性,除了要写符合规范的代码外,还应添加大量注释,这一点是不能偷懒的。在程序很小时,我们对性能不怎么要求。但当程序较大时,性能对程序的优劣起很大作用。这就要求我们注重算法的选择,如果选择错误的算法,可能会大大增加程序运行的时间。另外,程序的性能也可通过eclipse自带的工具测出,程序员可在用工具测出性能瓶颈后通过代码重构提升性能。
4、并行
并行在java中一般指多个进程同时运行。进程类可以通过继承Thread类创建或通过实现Runnable接口创建。创建进程类后,需重写其中的run方法。这里需要注意的是,通过实现Runnable接口创建的类不能直接调用start方法,应以此对象为target创建一个Thread对象,这个对象才是真正的线程对象。还有一点需要注意,调用run方法和调用start方法的结果是不同的,调用run方法只是普通地调用一个方法,而调用start才是创建另一个线程执行其中的run方法。然而并行以引发安全问题,简而言之就是并行的线程在调用共享数据时的顺序是随机的,这就导致了这么一种情况:线程A访问了数据m,记录了此时数据m的状态并根据之一状态做出回应;而此时线程B也访问并在A做出访问数据后做出回应前修改了数据m,则此时A做出了错误的回应。想要解决这种错误,应使用线程锁。