自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 74-谨慎的实现serializable接口

实现serializable 接口  :   值类(Date类)、集合类()、部分为继承而设计的类(Trowable类、Component类、HttpServlet类)

2010-05-24 14:16:00 411

原创 12-使类和成员的可访问能力最小化

为什么要限制访问能力?

2010-05-21 17:28:00 317

原创 11-考虑实现Comparable接口

 实现Comparable接口的类都有自然的排序关系。(natural ordering)compareTo(Object object)返回的值为 -1,0,1注意:应该了解 compareTo()中返回0的是否与equals保持一致。因为集合接口 相等是使用equals的。之前用过来比较基本类型的值。

2010-05-21 16:31:00 293

原创 10-谨慎的改写clone

Object 的 clone()是protected 如果要写一个实现对象的clone方法,必须对基本类型以外的属性都进行深度克隆。如果这些属性中有final修饰,则需去掉。 专家建议:最好使用其他途径代替对象拷贝。如提供一个拷贝构造函数public Yum(Yum yum) 如提供一个静态工厂方法public static Yum newInstance(Yum

2010-05-21 16:29:00 381

原创 9-建议所有子类都改写toString()

java.lang.Object 提供的toString()方法返回的结果是“类名@hashCode” 这样的结果常常不很明了。应该重写toString()以表达感兴趣的信息,且在文档中明确的表明你要返回的东西。  

2010-05-21 15:59:00 867

原创 8-在覆盖equals方法的同时覆盖hashCode

原因 : HashMap、HashSet、HashTable的操作是基于key的hashCode值来进行(添加或者查找)的。 要求:1、x.equal(y)  ->  x.hashCode()==y.hashCode()2、最好   !x.equal(y)  ->  x.hashCode()!=y.hashCode()  编写hashCode()函数有一个规范: 

2010-05-21 15:48:00 277

原创 7-在改写equals的时候请遵守通用约定

equals()必须遵守如下约定:1、自反性2、对称性3、传递性4、一致性5、引用对象非空性

2010-05-21 12:11:00 285

原创 38-遵守普遍接受的命名惯例

名字惯例: 包                      缩写 util类/接口               首字母大写                     名词(Writer)/ 名词或者形容词(Collection、Runnable 、Accessible)方法                   首字母小写                      动词短语   返回Bo

2010-05-20 16:18:00 444

原创 37-谨慎的进行优化

要避免优化! 措施:  1、在设计时就要考虑性能问题。 2、设计和实现完成之后,如果足够快,任务就完成了。如果不够快,在性能分析器的帮助下,去寻找需要优化的地方,第一步是检查算法。

2010-05-20 15:50:00 377

原创 36-尽可能少使用本地方法

JNI (Java Native Interface)  以前使用本地方法有三个原因:                                  1、访问与平台相关设施    2、访问老代码库    3、通过本地语言提高性能 由于现在java运行速度得到了很大的提高,第3点已经不是原因了。 本地方法是不安全的,同时会使得使用本地方法的java项目失去

2010-05-20 15:41:00 449

原创 35-接口优先于反射

reflection  通常翻译成“反射”。 使用反射有几个缺点: 1、损失了编译时检查代码的好处2、性能损失。大概是2倍量。3、代码长,难阅读。 在需要时使用。 

2010-05-20 15:33:00 332

原创 34-通过接口引用对象

使用接口来引用对象: List subscribers = new Vector();//推荐Vector subscribers = new Vector();//不推荐  三年前刚开始做java项目的时候,需要使用数组,后来看到Vector就用了,项目做完了,发现比较慢,后来发现还有个ArrayList,由于不需要线程安全,使用ArraList可以大大提高速度,但是

2010-05-20 15:13:00 470

原创 33-了解字符串连接的性能

String 是不可改变的类型,每次连接时,都要拷贝其内容,所以连接字符串的操作时间是O(n2)。 j2se 标准库提供了 StringBuffer 类 来处理String 连接的问题。使连接时间减少到 O(n).   

2010-05-20 15:00:00 295

原创 32-如果其他类型更适合,则尽量避免使用字符串

这一节有点抽象 除了String类型 ,实际上还有数值类型(int,float...)、枚举类型(Emun)、聚集类型、capabilities(这个不是太清楚)充分理解每一种类型的含义,根据需要选择适当的类型是明智的做法。若java中没有的,则自己定义。 

2010-05-20 14:54:00 406

原创 31-如果要求精确的答案,请避免使用float和double

在以下场合,不能使用浮点数运算。1、货币     可以使用分为单位.2、精确计算      BigDecimal 可以自己控制舍入,基本没有位数限制。但是慢。当9位以下使用int,18位以下使用long.  去年年底就有一个case,是计算正负概率,然后做归一化。 计算概率 有很多诸如  p= n/s 的表达式,归一化后,分子分母约分,最后剩下一个连乘的分子

2010-05-20 14:38:00 373

原创 30-了解和使用库

尽量使用java标准库。特别是在工作中不要自己重复造轮子。原因有三:     1、标准库是有算法背景的高级工程师花了大量时间设计实现和测试的,并经过领域专家的审查;而自己写的,并不能保证其准确性。     2、开发工程师的主要精力应用于应用上,而不是底层细节上。     3、标准库的性能会不断的得到提高。 每一个程序员都应该熟悉 java.lang   java.util 

2010-05-20 14:24:00 298

原创 29-将局部变量的作用域最小化

很长很长的题记~~~~~ 想在技术博客上写点东西,进入csdn博客里,竟然发现一篇两年多前的文章。自己都弄不清是不是自己写的。不过前两段的文风是近似的。 在开发的道路上混了好几年了,在这时才发现,视野太狭窄了,记忆中满是模糊的东西,终日没有总结,躲在自己的世界里,不读书,除了工作,专业上没任何追求。停下来,意味着倒退。 今天拿起《effective java》,第一页 第一

2010-05-20 14:10:00 342

原创 如何提高工作效率?

工作的时候越来越没有效率了,眼看着没什么进度,心里很着急。于是在网上搜搜建议。   有许多方法可以帮助我们提高效率,兼顾工作与生活,例如个人的工作习惯、依靠团队、建立完善的流程等,这里主要探讨个人效率问题。假设您提高20%的工作效率,每周工作5天,无需加班,就能获得6天的绩效。实际上,您的效率提高可能远远超过20%。 首先要明白,效率的关键在于良好的工作习惯,而不是学会一两个方法,这决非一

2008-05-31 10:12:00 613

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除