Effective Java - [3. 对象通用方法]】的更多相关文章

Item 10. 若覆盖equals方法,需要遵守规则…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4255680.html 第八章      通用程序设计 45.      将局部变量的作用域最小化 将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. 要使用局部变量的…
本文参考 本篇文章参考自<Effective Java>第三版第一条"Consider static factory methods instead of constructors" 另外参考了其它几篇文章的解读: https://www.cnblogs.com/dyj-blog/p/8867028.html https://blog.csdn.net/u014129886/article/details/89670049 前言 第一条的篇章来自"Creating…
泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 因此我们可以利用泛型和反射来设计一些通用方法. 现在有2张表, 一张user表和一张student表. user: student: 如果要根据id查询数据, 你会怎么做呢?写2个方法分别查询user和student?其实这时候我们就可以使用泛型和反射写一个通用的方法. user的实体类: private Integer id; private String username; priv…
1 重写equals方法时请遵守通用约定 (1)无需覆盖equals方法的情况 要求独一无二 不要求逻辑相等 超类已经覆盖equals方法,对其子类也适用 一个类是私有的或者是包私有(可以重写后抛出异常,防止被重写) (2)重写equals方法要保持等价关系 自反性:对于任意非空引用值x,x.equals(x)必须返回true. 对称性:对于任意非空引用值x和y,x.equals(y)必须返回true,当且仅当y.equals(x)返回true. 传递性:对于任意非空引用值x,y,z,如果x.e…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4255671.html 第七章      方法 38.      检查参数的有效性 绝大多数方法和构造器对于传递给它们的参数值都会有某些限制.例如,索引值必须是非负的,对象引用不能为null等,这…
一. 基本概念 1. 所谓的终结方法事实上是指finalize(). 2. Java的垃圾回收机制仅仅负责内存相关清理.其它资源的清理(释放文件.释放DB连接)须要程序猿手动完毕. 3. 调用System.gc() 仅仅是建议JVM运行垃圾回收(GC).但什么时候运行.是否要运行由JVM决定. 4. 用户能够自己调用对象的finalize方法.可是这样的调用是正常的方法调用,和对象的销毁过程无关. 5. 假设一个类实现了finalize方法,那么当JVM运行垃圾回收的时候,该方法一定会被调用.…
Java虚拟机会预先为加载到内存中的每个类维护一个方法表(Method Table),其中列出了所有类中所有方法的签名. 现在有2个类A和B,其中,B是A的子类,和一个B类型的对象x,当调用x.f(args)时: 1.获取候选方法 首先,编译器会查看对象的类型和被调用的方法名.编译器会在在B类及其超类A的方法表中,找到所有名字为f的方法. 现在,编译知道了所有可能被调用的候选方法 2.重载解析 编译器根据方法调用中提供的参数数量与类型,从候选方法中查找与其匹配的方法,这个过程称为"重载解析&qu…
首先需要引入的jar包: 正式代码了. import java.io.FileOutputStream; import java.io.OutputStream; import java.net.URLEncoder; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellS…
一.检查参数的有效性 1.考虑参数有哪些限制,把限制写到文档中,在方法的开头处通过显式地检查来实施这些限制. 二.必要时进行保护性拷贝 1.如果类具有从客户端得到或者返回的可变组件,类就必须考虑保护性拷贝这些组件. 2.如果拷贝成本比较高,类又可以信任他的客户端,不进行拷贝保护,但要进行文档的说明. 三.谨慎设计方法签名 1.谨慎地选择方法的名称:遵守规范,保持风格一致. 2.不要过于追求提供便利的方法. 3.编码过长的参数列表 a.一个方法分解成多个方法 b.创建辅助类,保存参数的分组. c.…