effective
Mason技术
暂无
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
对于所有对象都用的通用方法
八.覆盖equals时遵守通用约定 自反性 对于任何非空的引用值x,x.equals(x)必须返回true 对称性 对于任何非null的引用值想,x和y,y.equals(x)为真时,x.equals(y)也为真 传递性 对于任何非空的引用值x,y,z,x.equals(y)为true,y.equals(z)为true时,x.equals(z)必须为true 一致性 对于任何非空的原创 2017-07-09 19:52:30 · 232 阅读 · 0 评论 -
泛型
23.不要在新代码中使用原生态类型 24.消除非受检警告 25.列表优于数组 数组是协变的public static void main(String[] args) { Object [] objects = new Long[1]; objects[0] = "1"; System.out.println(objects[0]); }只有在运行时才会报错 数组是具体化的,原创 2017-07-14 22:21:26 · 174 阅读 · 0 评论 -
类和接口
13.使类和成员的可访问性最小化 尽可能使每个类或者成员不被外界访问,顶层的类(非嵌套的)和接口,只有俩种可能的访问级别,包级私有的(package-private)和共有的(public) //公有的,不安全 public static final Thing[] VALUES = {}; //把公有数组变成私有的,增加一个公有的不可变数组 private static final T原创 2017-07-12 21:21:32 · 210 阅读 · 0 评论 -
序列化
74.谨慎的使用Serializable接口原创 2017-07-22 10:19:53 · 199 阅读 · 0 评论 -
创建和销毁对象
一.考虑用静态工厂方法代替构造器 返回类的实例有俩种方法:1.提供共有的构造器2.提供共有的静态构造方法,只是返回类的实例的静态方法 示例: 将boolean基本类型转换成Boolean对象引用 public static Boolean valueOf(boolean b){ return b?Boolean.TRUE:Boolean.FALSE; }优势:1.静态工厂方法有名称原创 2017-07-09 10:42:46 · 286 阅读 · 0 评论 -
并发
66.同步访问共享的可变程序 读或写一个变量是原子的,除了long和double,读取一个非long或double类型的变量,可以保证返回的值是某个线程保存在该变量中的,即使多个线程在没有同步的情况下并发地修改这个变量也是如此 关键词synchronized可以保证同一时刻,只有线程可以执行某一种方法,或者一个代码块。 同步不仅可以阻止一个线程看到对象处于不一致的状态之中,还可以保证进入同步原创 2017-07-16 17:57:12 · 212 阅读 · 0 评论 -
异常
57.只针对异常的情况才使用异常 异常是为了异常情况下使用而设计的,不要将他们用于普通的控制流,不要编写迫使他们这么做的api 58.对可恢复的情况使用受检异常,对编程错误使用运行时异常 三种异常:受检的异常,运行时异常和错误 如果希望调用者能够适当的恢复,应该使用受检的异常。 用运行时异常表明编程错误。 错误往往被jvm保留用于表示资源不足,约束失败或者其他使程序无法继续执行的条件原创 2017-07-16 14:23:48 · 301 阅读 · 0 评论 -
方法
38.检查参数的有效性 非公有的方法方法通常用断言检查它们的参数 private static void sort(long a[],int offset,int length){ assert a!=null; assert offset >=0 && offset <=a.length; assert length >=0 && length <=a.length-offse原创 2017-07-15 14:26:14 · 213 阅读 · 0 评论 -
枚举和注解
30.用enum代替int类型 枚举类型指由一组固定的常量组成合法值的类型,没有枚举型前用的是声明一组常量。在安全和使用上没有帮助,将Apple传到orange也没有问题,还会用==比较,而且是编译器常量,如果改变,必须重新编译,不重新编译也没问题,行为就不确定了 public static final int APPLE_FUJI = 0; public static final int原创 2017-07-15 09:13:03 · 189 阅读 · 0 评论 -
通用程序设计
45.将局部变量的作用域最小化 可以增强代码的可读性和可维护性,使局部变量的作用域最小化,最有利的方法就是在第一次使用它的地方声明 循环中提供了特殊的机会来讲变量的作用域最小化,作用域被限定在正好需要的范围之内,在循环终止之后不再需要循环变量的内容,for循环优先于while循环 for(int i=0,n=ex();i<n;i++){ }第二个变量n被用作保存第一个变量的极限值原创 2017-07-15 22:34:04 · 257 阅读 · 0 评论
分享