一点JAVA心得总结,备忘

本文分享了Java编程中的22条最佳实践建议,包括参数传递、接口与抽象类的选择、继承与复合的优先级、代码可见性的限制、equals()与hashCode()方法的重写规则、toString()方法的使用、序列化与克隆的实现策略、集合类的选择与遍历、基本类型的运用、字符串操作的最佳方式、数值计算注意事项、变量作用域的最小化、异常处理技巧、ID生成策略、代码规范与单元测试的重要性。

以下内容转载自:http://hi.baidu.com/pmzcn/blog/item/9db204e934cc453cb90e2d16.html

1.在JAVA中参数总是以by value方式传递而不是by reference

2.接口优先与抽象类
 
接口用于定义类型,如需提供部分实现选用 abstract class
       可以为每一个接口提供一个抽象类

3.复合优先与继承

4.使用 static, final 和 private, 使类和成员的可访问能力最小化
       对不变的data和object reference使用 final

5.改写 equals() 时需遵循的原则
首先使用 == 检查是否指向同一个引用(object reference)
优先考虑使用getClass(),只有在想比较derived class 和 base class 再使用 instanceof
如果 base class 实现了 equals(),应该调用super.equals()

public boolean equals(Object that) {
       if (that == this) {
        return true;
       }
       if (that != null && getClass() == that.getClass()) {
        User thatUser = (User) that;
        if (thatUser.getUsername().equals(this.username) && thatUser.getId().equals(this.id)) {
         return true;
        }
       }
       return false;
}

6.改写 equals() 时总是要改写 hashCode

private static final int INITIAL_HASH = 7;
private static final int MULTIPLIER = 31;
public int hashCode() {
       int hash = INITIAL_HASH;
       hash = MULTIPLIER * hash + id.hashCode();
       hash = MULTIPLIER * hash + name.hashCode();
       return hash;
}

7.总是要改写 toString()

8.谨慎的实现 Serializable
 
实现 Serializable 不是加上 implements Serializable 就完了
 为继承而设计的类,很少实现 Serializable

9.谨慎的实现 clone

10.优先使用 Array, 然后再考虑 List, Set, Map

11.优先使用 for 遍历集合, 因为 for 比 Enumeration 和 Iterator 更快。
for (int i = 0, n = array.length; i < n; i++) {
}

for (Object object : set) {
   
}
12.使用基本类型(int, boolean..),可以使代码更快

13.如果其他类型更合适,尽量避免使用 String

14.如果进行字符串拼接,使用 StringBuilder或StringBuffer, 而不是 String

15.如果要求精确计算,避免使用 float 和 double

16.将局部变量作用域最小化,在第一次使用它的地方声明

17.不要从 try 区段中返回
 
因为如果存在 finally ,会在运行 finally 之后才返回,值可能会被改变

18.可以考虑用 class 代替 enum   

19.自己产生表id(唯一标识符,主键),而不是通过数据库自动生成
       唯一标识符采用无意义的代理键(如1000),而不是具有业务概念的唯一自然键(如身份证号码)
 可以采用GUID,如果不是很必要采用类型为 int 的id比GUID效率更高

20.代码规范很重要

21.单元测试很重要

22.使用版本控制,即使一个人开发也一样

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值