上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页
摘要: 原因: 阅读全文
posted @ 2013-12-22 11:14 akingseu 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 因为会经常覆写equals方法,其目的是根据业务规则判断两个对象是否相等。建议45:覆写equals方法时,不要识别不出自己public boolean equals(Object obj){ if(obj instanceof Person){ Person p = (Person)obj; return name.equalsIgnoreCase(p.getName().trim());}}如果name本身含有空格,那样会导致不相等了。 违背了自反省建议46:equals应该考虑null情况对称性问题上述name容易为null输入。建议47:传递性不要用instanceof来... 阅读全文
posted @ 2013-12-22 10:50 akingseu 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 拷贝clone() 与new的区别?浅拷贝实现clone()方法的时候,如果用默认的super.clone()方法会调用Object类的默认拷贝,缺陷:不会把所有的属性全部拷贝一份,拷贝规则:(1)基本类型,拷贝其值(2)对象:拷贝引用地址,新拷贝的对象和原有对象共享该实例变量,不受访问权限控制。(3)String字符串:拷贝的是引用,但有点特殊,在修改时,会从字符串池中重新生成新的字符串。原有的字符串内容保持不变,故可以认为String是一个基本类型。为了实现深拷贝:在clone()方法的重载时,在设置属性时new一个对象出来。这样拷贝出来的和原来的不会共有一份引用。建议44.推荐使用序列化 阅读全文
posted @ 2013-12-22 10:11 akingseu 阅读(202) 评论(0) 推荐(0) 编辑
摘要: public final class Math{ privateMath(){}}但Java反射可以绕过private.因此可做如下修改,抛出异常:public class UtilClass{ private UtilClass(){ throw new Error("Don't instantiate me!");}} 阅读全文
posted @ 2013-12-22 09:32 akingseu 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 38.使用静态内部类提高封装性1.封装性2.限制性。静态内部类不持有外部类的引用。对静态内部类的访问做了限制。3.生命周期,不依赖于外部类。39.使用匿名类的构造函数eg:List l1 = new ArrayList();List l2 = new ArrayList(){};//匿名类List l3 = new ArrayList(){ {} {} {} {} }//匿名类,构造代码块40.匿名类的构造只能以构造代码块的形式出现,不能直接有构造函数。41.内部类实现多重继承eg:interface Father{ public int strong();}class FatherI... 阅读全文
posted @ 2013-12-22 09:22 akingseu 阅读(190) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页