1、提高代码的复用性,一个非常灵活的方式就是组合
2、java中的类 就是完成一个特定的逻辑、服务 。系统功能一定要做到高内聚(一个模块只完成一个特定的功能),这样模块之间就可以相互利用,提高代码的复用性。
同时设计的时候经常会出现这样的问题。比如一个打印输出模块,如果你写成一个类来实现这个功能,这就会包括很多方面。首先确定要打印的文件是什么类型,然后根据类型确定具体的打印方式。 如果紧紧设置一个类来实现,那么就做不到高内聚!比如确定打印文件的类型,这个肯定可以被其他的模块利用,现在你在一个类中不合理。
3、有时候一个类和原来写的类很像,那么这个时候就可以用到继承
继承有自己的、
纯粹继承:子类和父类方法是一致的
继承原则:子类方法比父类方法
继承有个很大的好处就是 多态
4、单继承的有点还无法理解
5、对象的创建和生命周期
类似C++中,对象的创建时创建在堆栈上的,编写程序的时候就确定对象的存储空间和生命周期。这样可以最求最大的执行速度
java 采用的是动态内存分配方式,在堆上动态的创建对象, 只有到运行的时候才知道有多少对象,生命周期
6、java的垃圾回收 (具体原理还不懂)
Java语言规范没有明确地说明JVM使用哪种垃圾回收算法,但是任何一种垃圾回收算法一般要做2件基本的事情:(1)发现无用信息对象;(2)回收被无用对象占用的内存空间,使该空间可被程序再次使用。
大多数垃圾回收算法使用了根集(root set)这个概念;所谓根集就是正在执行的Java程序可以访问的引用变量的集合(包括局部变量、参数、类变量),程序可以使用引用变量访问对象的属性和调用对象的方法。垃圾回收首先需要确定从根开始哪些是可达的和哪些是不可达的,从根集可达的对象都是活动对象,它们不能作为垃圾被回收,这也包括从根集间接可达的对象。而根集通过任意路径不可达的对象符合垃圾收集的条件,应该被回收
7、