




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
java习惯用法总结 第一篇:java习惯用法总结在Java编程中,有些知识并不能仅通过语言规范或者标准API文档就能学到的。在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。(JoshuaBloch的《EffectiveJava》对这个话题给出了更详尽的论述,可以从这本书里学习更多的用法。)我把本文的所有代码都放在公共场所里。你可以根据自己的喜好去复制和修改任意的代码片段,不需要任何的凭证。目录实现:oequals()ohashCode()ocompareTo()oclone()应用:oStringBuilder/StringBufferoRandom.nextInt(int)oIterator.remove()oStringBuilder.reverse()oThread/Runnableotry-finally输入/输出:o从输入流里读取字节数据o从输入流里读取块数据o从文件里读取文本o向文件里写文本预防性检测:o数值o对象o数组索引o数组区间数组:o填充元素o复制一个范围内的数组元素o调整数组大小包装o个字节包装成一个into分解成4个字节实现equals()classPerson{Stringname;intbirthYear;byte[]raw;publicbooleanequals(Objectobj){if(!objinstanceofPerson)returnfalse;Personother=(Person)obj;returnname.equals(other.name)&&birthYear==other.birthYear&&Arrays.equals(raw,other.raw);}publicinthashCode(){...}}参数必须是Object类型,不能是外围类。foo.equals(null)必须返回false,不能抛NullPointerException。(注意,nullinstanceof任意类总是返回false,因此上面的代码可以运行。)基本类型域(比如,int)的比较使用==,基本类型数组域的比较使用Arrays.equals()。覆盖equals()时,记得要相应地覆盖hashCode(),与equals()保持一致。参考:java.lang.Object.equals(Object)。实现hashCode()classPerson{Stringa;Objectb;bytec;int[]d;publicinthashCode(){returna.hashCode()+b.hashCode()+c+Arrays.hashCode(d);}publicbooleanequals(Objecto){...}}当x和y两个对象具有x.equals(y)==true,你必须要确保x.hashCode()==y.hashCode()。根据逆反命题,如果x.hashCode()!=y.hashCode(),那么x.equals(y)==false必定成立。你不需要保证,当x.equals(y)==false时,x.hashCode()!=y.hashCode()。但是,如果你可以尽可能地使它成立的话,这会提高哈希表的性能。hashCode()最简单的合法实现就是简单地return0;虽然这个实现是正确的,但是这会导致HashMap这些数据结构运行得很慢。参考:java.lang.Object.hashCode()。实现compareTo()classPersonimplementsComparable{StringfirstName;StringlastName;intbirthdate;//ComparebyfirstName,breaktiesbylastName,finallybreaktiesbybirthdatepublicintcompareTo(Personother){if(firstName.compareTo(other.firstName)!=0)returnfirstName.compareTo(other.firstName);elseif(lastName.compareTo(other.lastName)!=0)returnlastName.compareTo(other.lastName);elseif(birthdateother.birthdate)return1;elsereturn0;}}总是实现泛型版本Comparable而不是实现原始类型Comparable。因为这样可以节省代码量和减少不必要的麻烦。只关心返回结果的正负号(负/零/正),它们的大小不重要。Comparator.compar

悠柔****找我
实名认证
内容提供者


最近下载
贵州省城市管理行政执法条例.doc
贵州省城市管理行政执法条例.doc
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf