- 博客(18)
- 收藏
- 关注
原创 74-谨慎的实现serializable接口
实现serializable 接口 : 值类(Date类)、集合类()、部分为继承而设计的类(Trowable类、Component类、HttpServlet类)
2010-05-24 14:16:00
411
原创 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
原创 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关注的人
RSS订阅