effective java学习笔记
iteye_6541
这个作者很懒,什么都没留下…
展开
-
第二条 遇到多个构造器参数时要考虑用构建器
构造方法中传递的参数一般是必要参数,如果一个类,有必要的属性,还有可选的属性,那可用Builder构造器 建立对应的类 例:类Nutrition 有必要属性servings,servings,可选属性为calories,fat,sodium,carbohydrate [code="java"] public class Nutrition { //parameters pri...原创 2011-03-17 11:46:55 · 64 阅读 · 0 评论 -
第八条 覆盖equals是要遵守通用的约定
第八条 覆盖equals是要遵守通用的约定 覆盖equals必须满足以下四个要求: [color=red](1)自反性[/color] 对于任何非null的引用值x,x.equals(x)返回true [color=red](2)对称性[/color] 对于任何非null的引用值x和y,当且仅当y.equals(x)返回true时, x.equals(y)必须返回true [co...原创 2011-03-22 12:34:30 · 85 阅读 · 0 评论 -
第六条 消除过期的对象引用
第六条 消除过期的对象引用 [i]做个简单不能再简单的栈,实现put和pop功能,最大存储量为10, 我让elements[i] = Ingeter.valueOf(i) 0原创 2011-03-22 12:32:51 · 90 阅读 · 0 评论 -
第五条 避免创建不必要的对象
第五条 避免创建不必要的对象 (1)[code="java"] String s = new String("S"); String s1 = "s"; [/code] 二者比较当然是第二种更好,因为第一种比第二种多了一个new了个String。 多new一个String小规模看没什么,所以自己试着写了点代码,扩大这个规模,代码如下: [code="java"] long l1 =...原创 2011-03-21 17:22:14 · 103 阅读 · 0 评论 -
对应Entity写的算法
Entity的配套排序,有直接插入排序,快速排序,冒泡排序,希尔排序,好像没别的排序了。 [code="java"]package com.util; public class Algorithm { //直接插入 public static Entity[] injectionSort(Entity[] entities) { int j; int total = e...原创 2011-03-19 23:09:15 · 163 阅读 · 0 评论 -
读完部分effective java 自己写的类Entity
自己写的Entity类,有四个属性,int,char,Sting,double,用了构造器方法,可以四个参数都有,也可以之后几个,但int是必须的。类还实现了comparable接口,重写了compareTo,equals,hashCode三个方法,这是我能想到的比较OK的类。 [color=red]compareTo的比较方法是按int>char>String>double的顺序[/col...原创 2011-03-19 23:06:28 · 69 阅读 · 0 评论 -
小菜鸟声明
[color=red]本人能力有限,可以说是小菜鸟,看完的东西,解释出来肯定有不正确的,或者与真实有出入的,希望大神们有时间的话留言改正,再次谢过[/color]...原创 2011-03-18 11:38:57 · 89 阅读 · 0 评论 -
effective java中待理解的条目
effective java是本十分优秀的书,所以有些地方还是不能理解,这篇帖子记录我不理解的地方,当我理解后会写blog并将问题删除。当然本人能力有限,可以说是小菜鸟,看完的东西,解释出来肯定有不正确的,或者与真实有出入的,希望大神们有时间的话留言改正,再次谢过 第四条通过私有构造器强化不可实例化的能力 看过题目无非弄懂2个词就行,私有构造器,不可实例化 私有构造器好理解,不及时p...原创 2011-03-18 11:37:38 · 87 阅读 · 0 评论 -
第三条 用私有的构造器或者枚举类型强化singleton属性
第三条 用私有的构造器或者枚举类型强化singleton属性 首先说下singleton,设计模式叫单例模式,就是只被实例化一次的实例,是唯一的类。例如做单元测试时,你要测试数据库的增删改查,你不会new四个Connection吧?!new一个就够了,所有程序就用这一个就行了,节省内存资源,也节约了时间。ps一句:在web项目中每个客户端应该是自己一个connection,要不就全乱了。 ...原创 2011-03-18 11:36:57 · 76 阅读 · 0 评论 -
第一条 考虑用静态工厂方法代替构造器
第一条 考虑用静态工厂方法代替构造器 静态工厂方法非设计模式中的静态工厂方法,它通过是static的静态方法生产相关的类的方法,例如:Integer i = Integer.valueOf(1);他就是将1封装成Integer类的1(可能不说的不太对,大概因该是这个意思) 当然也可写为Integer i = new Integer(1); 写个最简单的代码演示下静态工厂:[code="j...原创 2011-03-18 11:35:05 · 94 阅读 · 0 评论 -
第七条 避免使用终结方法
try - finally 不要过分依赖finally语句关闭资源,例如:用终结方法关闭已打开的文件,当错误时,jvm会延迟执行终结方法,大量文件在打开状态,使系统崩溃 [color=red][size=large] 结论: 不应依赖终结方法类更新重要的持久状态[/size][/color]...原创 2011-03-22 12:38:01 · 58 阅读 · 0 评论