摘要: 第66条: 同步访问共享可变的数据 所谓同步指的发出一个调用时,如果没有得到结果就不返回,直到有结果后再返回。另外相对应的是异步,指的是发出一个调用时就立即返回而不在乎此时有没有结果。 同步和异步关注的是“消息通信机制”,通常我们提到同步的时候实际上只理解了它一部分或者干脆理解为“互斥”,这是不全对 阅读全文
posted @ 2018-08-27 16:42 Ericyshi 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 第57条: 只针对异常情况才使用异常 异常是为了在异常情况下使用而设计的,不要将它们用于普通的控制流,也不要编写迫使它们这么做的API。 第58条: 对可恢复的情况使用受检异常,对编程错误使用运行时异常 所有的异常、错误都继承自Throwable,它直接包含了两个子类Error和Exception。 阅读全文
posted @ 2018-08-25 16:40 Ericyshi 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 第45条: 将局部变量的作用域最小化 该条目与第13条(使类和成员的可访问性最小)本质上是类似的。要使局部变量的作用域最小化,最有利的方法就是在第一次使用它的地方声明。在每个局部变量的声明处都应该包含一个初始化表达式。还要使方法小而集中。 第46条: for-each循环优于传统的for循环 传统的 阅读全文
posted @ 2018-08-25 10:27 Ericyshi 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 第38条: 检查参数的有效性 对于这一条,最常见的莫过于检查参数是否为null。 有时出现调用方未检查传入的参数是否为空,同时被调用方也没有检查参数是否为空,结果这就导致两边都没检查以至于出现null的值程序出错,通常情况下会规定调用方或者被调用方来检查参数的合法性,或者干脆规定都必须检查。null 阅读全文
posted @ 2018-08-15 15:12 Ericyshi 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 第30条: 用enum代替int常量 枚举类型是指由一组固定的常量组成合法值得类型。例如一年中的季节,太阳系中的行星或一副牌中的花色。在开发中我们经常在类使用static final来定义一个int常量。这种方式存在诸多不足,在类型安全性和使用方便性方面没有任何帮助。 看几个枚举类型的例子,体会一下 阅读全文
posted @ 2018-08-14 15:43 Ericyshi 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 第23条: 不要在新代码中使用原生态类型 声明中具有一个或多个类型参数的类或接口,就是泛型类或接口。每种泛型都定义一组参数化的类型,每个泛型都定义一个原生态类型。例如List<E>相对应的原生态类型是List。 该程序会出现ClassCastException。但如果使用泛型,则会在编译期就能准确告 阅读全文
posted @ 2018-08-10 11:25 Ericyshi 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 第13条: 使类和成员的可访问性最小化 良好的模块设计能隐藏其内部数据和其他实现细节,模块之间只通过它们的API进行通信。java语言提供了许多机制来协助隐藏信息。访问控制机制决定了类、接口和成员的可访问性,实体的可访问性是由该实体申明所在的位置,以及该实体申明中所出现的访问修饰符共同决定。正确使用 阅读全文
posted @ 2018-08-08 17:03 Ericyshi 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 第8条: 覆盖equals时请遵守通用约定 我们在覆盖equals方法时,必须遵守它的通用约定: 1.自反性。对于任何非null的引用值x,x.equals(x)必须返回true; 2.对称性。对于任何非null的引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y)必须 阅读全文
posted @ 2018-08-07 11:30 Ericyshi 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 在这里记录《Effective Java》学习笔记。该书介绍了java编程中70多种极具实用价值的经验规则,揭示了该做什么,不该做什么才能产生清晰、健壮和高效的代码。 第1条: 考虑用静态工厂方法代替构造器 对于类而言,为了让客户端获得它自身的实例,最常用的方法就是提供一个公有的构造器。还有一种方法 阅读全文
posted @ 2018-08-03 16:17 Ericyshi 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 访问者模式:表示一个作用于某对象结构中的各个元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 访问者模式适用于数据结构相对稳定的系统。它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化。访问者模式的目的是要把处理从数据结构中分离出来。其实访问 阅读全文
posted @ 2018-07-25 11:53 Ericyshi 阅读(237) 评论(0) 推荐(0) 编辑