52:通过接口引用对象 一般来讲,应该优先使用接口而不是类来引用对象。如果有合适的接口,那么对于参数、返回值、变量和域来说,都应该使用接口类型进行声明。 比如Vector是List接口的一个实现类,那么在声明一个Vector变量的时候应该这样做
List<String> list = new Vector<String>();
而不是
Vector<String> list = new Vector<String>();
用接口作为类型会让程序变得更加灵活,比如某一天你决定把ArrayList作为实现类时,针对第一种情况,只需要把Vector改为ArrayList即可,周边的代码并不知道原来的实现类型,所以避免了改动。 有一点值得注意的是如果原来的实现类中提供了某种特殊的功能, 而这种特殊的功能又不属于接口的规范,并且周边的代码又依赖于这种特殊的功能,那么重要的一点就是要在新的实现类中也要实现相同的功能。
53:接口优先于反射机制 反射机制是java提供的一个非常重要的功能,它提供了“通过程序来访问关于已转载类的信息”的能力,为什么这么说呢? 是因为我们只要给定一个类的实例或者名称,我们就能通过反射来获取类的构造器、方法、属性的信息。 但是反射机制还是会付出一定的代价,比如说: 1.丧失了编译时类型检查的能力 2.执行反射访问所需要的代码非常笨拙和冗长。 2.性能损失 但是一些复杂的程序或者架构确实是需要反射机制来作为一个重要的技术实现点。
54:谨慎的使用本地方法 本地方法是指本地程序设计语言,比如C或者C++来编写的特殊方法,java中通过native关键字来修饰,没有方法体
55:谨慎地进行优化 ................................
56:准守普遍接受的命名规则 主要是一些包、类或者接口、方法或者域、常量域、局部变量、类型参数的命名规范