08 2016 档案

摘要:切记,不要忽略异常 尽管这条建议看上去显而易见,但是它常常被违反,因而值得再次被提出来。当API的设计者声明一个方法将被抛出某个异常的时候。他们等于正在试图说明某些事情。所以请不要忽略它!要忽略一个异常非常容易,只需要讲方法调用通过try语句包围起来,并包含一个catch块: 空的catch块会使异 阅读全文
posted @ 2016-08-31 11:57 Mr-cc 阅读(437) 评论(0) 推荐(0)
摘要:常用的异常 | 异常 | 使用场合 | | | | | IllegalArgumentException | 非null的参数不正确 | | IllegalStateException | 对于方法调用而言,对象状态不合适 | | NullPointerException | 在禁止使用null的情 阅读全文
posted @ 2016-08-31 11:28 Mr-cc 阅读(153) 评论(0) 推荐(0)
摘要:当心字符串的连接性能 字符串连接操作符(+)是把多个字符串合并为一个字符串的便利途径。要想产生单独一行的输出,或者构建一个字符串来表示一个较小的、大小固定的对象,使用连接符操作符是非常合适的,但是它不适合运用在大规模的场景中。未连接n个字符串而重复使用字符串连接操作符,需要n的平方级的时间。这是由于 阅读全文
posted @ 2016-08-31 10:21 Mr-cc 阅读(381) 评论(0) 推荐(0)
摘要:将局部变量的作用域最小化 将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性。 在较早的程序设计语言(C语言),要求局部变量必须在一个代码块的开头处进行声明,出于习惯,很多程序员目前还是继续这样做。这个习惯过应该纠正。再次提醒,Java允许你在任何可以出现语句的地方声明变量 阅读全文
posted @ 2016-08-31 09:21 Mr-cc 阅读(926) 评论(0) 推荐(1)
摘要:理解国际站代码结构 O/R Mapping 是 Object Relationl Mapping(对象关系映射)的缩写。通俗点讲,就是对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是很重要的东东需要了解一下,即VO,PO。 VO,值对象(Value Ob 阅读全文
posted @ 2016-08-30 11:36 Mr-cc 阅读(388) 评论(0) 推荐(0)
摘要:返回零长度的数组或集合,而不是null 像下面的方法并不少见: 把没有奶酪(cheese)可买的情况当做一种特例,这是不合理的。这样做会要求客户端必须有额外的代码来处理null返回值,例如: 而不是下面这些代码: 对于一个返回null而不是令狐冲那个度数组或者集合的方法,几乎每次都要用到该方法时都需 阅读全文
posted @ 2016-08-26 16:20 Mr-cc 阅读(1063) 评论(0) 推荐(0)
摘要:用EnumMap代替序数索引 有时候,会见到利用ordinal方法来索引数组的代码。例如下面这个简化的类,表示一种烹饪用的香草: 假设有一个香草的数组,表示一座花园中的植物,想要按照类型(一年生、多年生或者两年生植物)进行组织后将植物列出来。 有些程序员会将这些集合放到一个按照类型序号进行索引的数组 阅读全文
posted @ 2016-08-25 21:47 Mr-cc 阅读(322) 评论(0) 推荐(0)
摘要:用EnumSet代替位域 如果一个枚举类型的元素主要用在集合中,一般使用int枚举模式,将2的不同倍数赋予每个常量: java // Bit field enumeration constants OBSOLETE public class Test{ public static final int 阅读全文
posted @ 2016-08-25 19:40 Mr-cc 阅读(432) 评论(0) 推荐(0)
摘要:枚举——用实例域代替序数 许多枚举天生就与一个单独的int值相关联。所有的枚举都有一个ordinal方法,它返回每个枚举常量在类型中的数字位置。你可以试着从叙述中得到关联的int值: 虽然这个枚举不错,但是维护起来就像一场噩梦。如果常量进行重新编译,numberOfMusicians方法就会遭到破坏 阅读全文
posted @ 2016-08-25 18:14 Mr-cc 阅读(576) 评论(0) 推荐(0)
摘要:泛型的使用 声明中具有一个或者多个类型参数的类或者接口,就是泛型类或者接口。例如,从Java 1.5发行版本起,List接口就只有单个类型参数E,表示列表的元素类型。从技术的角度来看,这个接口的名称应该是指现在的 (读作“E的列表”),但是人们经常把它简称为List。泛型类和接口统称为泛型。 每种泛 阅读全文
posted @ 2016-08-23 19:58 Mr-cc 阅读(539) 评论(1) 推荐(1)
摘要:用函数对象表示策略 有些语言支持函数指针(function pointer)、代理(delegate)、lambda表达式(lambda expression),或者支持类似的机制,允许程序把“调用特殊函数能力”存储起来并传递这种能力。这种机制通常用于允许函数的调用者通过传入第二个函数,来指定自己的 阅读全文
posted @ 2016-08-23 16:09 Mr-cc 阅读(248) 评论(0) 推荐(0)
摘要:类层次优于标签类 有时候,可能会遇到带有两种甚至更多风格的实例代码的类,并包含表示实例风格的 标签(tag)域 。例如,考虑下面这个类,它能够表示圆形或者矩形: 这种标签类有着许多的缺点。他们之中充斥着样板代码,包括枚举声明、标签域以及条件语句。由于多个实现乱七八糟的挤在了单个类中,破坏了可读性。内 阅读全文
posted @ 2016-08-23 10:48 Mr-cc 阅读(643) 评论(0) 推荐(0)
摘要:接口只用于定义类型 当类实现接口时,接口就充当可以引用这个类的实例的类型(type)。因此,类实现了借口,就表明客户端可以对这个类的实例实施某些动作。为了任何其他目的而定义接口是不恰当的。 有一种接口被称为常量接口(constant interface),亚布妈祖上面的条件。这种接口没有包含任何方法 阅读全文
posted @ 2016-08-22 21:30 Mr-cc 阅读(404) 评论(0) 推荐(0)
摘要:接口优于抽象类   Java程序设计语言提供了两种机制,可以用来定义允许多个实现的类型:接口和抽象。   两种机制之间最明显的区别在:① 抽象类允许包含某个方法的实现,而接口则不允许。②为了实现由抽象类定义的类型,类必须成为抽象类的一个子类。Java只允许单继 阅读全文
posted @ 2016-08-22 20:50 Mr-cc 阅读(408) 评论(0) 推荐(0)
摘要:考虑实现Comparable接口   compareTo方法没有在Object中声明。相反,它是Comparable接口中唯一的方法。compareTo方法不但允许进行简单的等同性比较,而且允许执行顺序比较,除此之外,它与Object的equals方法具有相似的特征,它还是个泛型 阅读全文
posted @ 2016-08-19 14:03 Mr-cc 阅读(618) 评论(2) 推荐(0)
摘要:始终要覆盖toString   虽然java.lang.Object提供了toString方法的一个实现,但它返回的字符串通常并不是类的用户所期望看到的。它包含类的名称,以及一个“@”符号,接着是散列码的无符号十六进制表示法,例如“ ”。toString的通用约定指出,被返回的字 阅读全文
posted @ 2016-08-18 20:09 Mr-cc 阅读(280) 评论(0) 推荐(0)
摘要:覆盖equals时总要覆盖hashCode   一个很常见的错误根源在于没有覆盖hashCode方法。在每个覆盖了equals方法的类中,也必须覆盖hashCode方法。如果不这样做,就会违反Object.hashCode的通用约定,从而导致该类无法结合所有基于散列的集合一起正常 阅读全文
posted @ 2016-08-17 18:19 Mr-cc 阅读(481) 评论(0) 推荐(0)
摘要:覆盖equals方法时请遵守通用约定   覆盖equals方法看起来很简单,但是有许多覆盖方式会导致错误,并且后果很严重。最容易避免这种类问题的方法就是不覆盖equals方法,在这种情况下,类的每个实例都只能与它自己相等。如果满足了一下任何一个条件,这都是所谓期望的结果: 类的每 阅读全文
posted @ 2016-08-17 11:51 Mr-cc 阅读(502) 评论(0) 推荐(0)
摘要:builder模式的新学习 静态工厂和构造器有个共同的局限性:他们不能很好的扩展到大量的可选参数。大多数产品在牧歌可选与中都会有非零的值 对于这种类,应该使用哪种构造器或者静态方法来进行编写?程序员一般习惯采用重叠构造器(telescoping constructor)模式。在这种模式下,你可以第一 阅读全文
posted @ 2016-08-15 15:01 Mr-cc 阅读(315) 评论(1) 推荐(1)
摘要:单例模式的新实现 jdk1.5 之前 单例模式的两种方式,两种方法都是要把构造器保持私有的,并导出公有的静态成员,以便允许客户端能够访问该类的唯一实例。 第一种方法中,公有的静态成员是个final域: 私有的构造器仅被调用一次,用来实例公有化的静态 域`Elvis.INSTANCE Elvis El 阅读全文
posted @ 2016-08-15 13:36 Mr-cc 阅读(186) 评论(0) 推荐(0)
摘要:Elasticsearch学习记录(分布式的特性) 分布式的特性 我们提到Elasticsearch可以扩展到上百(甚至上千)的服务器来处理PB级的数据。然而我们的例子只给出了一些使用Elasticsearch的例子,并未涉及相关机制。Elasticsearch为分布式而生,而且它的设计隐藏了分布式 阅读全文
posted @ 2016-08-11 19:19 Mr-cc 阅读(221) 评论(0) 推荐(1)
摘要:Elasticsearch学习记录(入门篇) 1、 的请求与结果 请求结构 VERB HTTP方法:GET, POST, PUT, HEAD, DELETE PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用) HOST Elasticsea 阅读全文
posted @ 2016-08-11 19:18 Mr-cc 阅读(3711) 评论(2) 推荐(1)
摘要:反射记录点滴 1、 反射获取类的属性 Class.getDeclareFileld(String name) 返回一个 对象,该对象反映此 对象所表示的类或接口的指定已声明字段。 Class.getDeclaredFields() 返回 对象的一个数据,这些对象反应此 对象所表示的类或接口所声明的所 阅读全文
posted @ 2016-08-10 18:18 Mr-cc 阅读(212) 评论(0) 推荐(1)