一点JAVA心得总结,备忘

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下内容转载自: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.使用版本控制,即使一个人开发也一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值