摘要:
第66条:同步访问共享的可变数据 Java语言规范保证读或者写一个变量是原子的(atomic ) ,除非这个变量的类型为long或者double. [java中long和double类型操作的非原子性探究]( http://blog.csdn.net/zhaifengmin/article/details/46315003) 你可能期待这个程序运行大约一秒钟左右,之后主线程将stapR... 阅读全文
posted @ 2017-09-30 13:32
ITRoad
阅读(316)
评论(0)
推荐(0)
摘要:
第58条:对可恢复的情况使用受检异常,对编程错误使用运行时异常 Java程序设计语言提供了三种可抛出结构(throwable) ;受检的异常(checked exception)运行时异常(run-time exception)和错误(error)。 受检的异常是潜在指示 在决定使用受检的异常或是未受检的异常时,主要的原则是:如果期望调用者能够适当地恢复对于这种情况就应该使用受检的异常。... 阅读全文
posted @ 2017-09-30 13:22
ITRoad
阅读(290)
评论(0)
推荐(0)
摘要:
第30条:用enum代替int常量 将加班工资计算移到一个私有的嵌套枚举中,将这个策略枚举(strategy enum)的实例传到PayrollDay枚举的构造器中。之后PayrollDay枚举将加班工资计算委托给策略枚举: 以上,方法overtimePay()在每个枚举类示例中实现,对外提供一致的pay()方法。 第31条:用实例域代替序数 永远不要根据枚举的序数导出与它关联的值、而... 阅读全文
posted @ 2017-09-30 13:21
ITRoad
阅读(195)
评论(0)
推荐(0)
摘要:
第38条:检查参数的有效性 对于公有的方法,要用javadoc的@throws标签(tag)在文档中说明违反参数值限制时会抛出的异常。这样的异常通常为IllegalArgumentException, IndexOutOfBoundsException或NullPointerException. 非公有的方法通常应该使用断言(assertion)来检查它们的参数,具体做法如下所示: ... 阅读全文
posted @ 2017-09-30 13:21
ITRoad
阅读(272)
评论(0)
推荐(0)
摘要:
第13条:使类和成员的可访问性最小化 第一规则很简单:尽可能地使每个类或者成员不被外界访问。换句话说。应该使用与你正在编写的软件的对应功能相一致的、尽可能最小的访问级别。 对于顶层的(非嵌套的)类和接口,只有两种可能的访问级别:包级私有的(package-private)和公有的(public)。如果你用public修饰符声明了顶层类或者接口,那它就是公有。否则,它将是包级私有的。如果类或者接... 阅读全文
posted @ 2017-09-30 13:20
ITRoad
阅读(440)
评论(0)
推荐(0)
摘要:
第23条:请不要在新代码中使用原生态类型 声明中具有一个或者多个类型参数( type parameter)的类或者接口,就是泛型(generic)类或者接口。 每种泛型定义一组参数化的类型(parameterized type),构成格式为: 先是类或者接口的名称,接着用尖括号()把对应于泛型形式类型参数的实际类型参数列表括起来。例如,List(读作“字符串列表”)是一个参数化的类型,表示元素... 阅读全文
posted @ 2017-09-30 13:20
ITRoad
阅读(192)
评论(0)
推荐(0)
摘要:
第8条:覆盖equals时请遵守通用约定 覆盖equals方法看起来似乎很简单,但是有许多覆盖方式会导致错误,并且后果非常严重。最容易避免这类问题的办法就是不覆盖equals方法,在这种情况下,类的每个实例都只与它自身相等。 那么,什么时候应该覆盖Object.equals呢?如果类具有自己特有的“逻辑相等”概念(不同于对象等同的概念),而且超类还没有覆盖equals以实现期望的行为,这时我们... 阅读全文
posted @ 2017-09-30 13:19
ITRoad
阅读(253)
评论(0)
推荐(0)

浙公网安备 33010602011771号