java编程中写出好代码的建议

1、注释尽可能全面

    对于方法的注释应当包含详细的入参和结果说明,有异常抛出的情况也要详细叙述;类的注释应该包含类的功能说明、作者和修改者。

 

2、多次使用的相同变量最好归纳成常量

    多处使用的相同值的变量应该尽量归纳为一个常量,方便日后的维护。

 

3、尽量少的在循环中执行方法调用

    尽量在循环中少做一些可避免的方法调用,这样可以节省方法栈的创建。例如:

    java代码:

     1 for(int i=0;i<list.size();i++){

     2 System.out.println(i);  

     3 }

 

   可以修改为:

 

     1 for(int i=0,size=list.size();i<size;i++){

     2 System.out.println(i);  

     3 }

 

4、常量的定义可以放到接口中

    在java中,接口中只允许存在常量,因此把常量放到接口中声明就可以省去public static final这几个关键词。

 

5、ArrayList 和LinkedList的选择

    这个问题比较常见,通常程序员最好能够对list的使用场景做出评估,然后根据特性做出选择。ArrayList底层是使用数组实现的,因此随机读取数据会比LinkedList快很多,而LinkedList是使用链表实现的,新增和删除数据的速度比ArrayList快不少。

 

6、String,StringBuffer和StringBuilder

    这个问题也比较常见,在进行字符串拼接处理的时候,String通常会产生多个对象,而且将多个值缓存到常量池中。例如:

    java代码:

    1 String a="a";

    2 String b="b";

    3 a=a+b;

    这种情况下jvm会产生"a","b","ab"三个对象,而且字符串拼接的性能也很低。因此通常需要做字符串处理的时候尽量采用StringBuffer和StringBuilder来。

 

7、包装类和基本类型的选择

    在代码中,如果可以使用基本数据类型来做局部变量类型的话尽量使用基本数据类型,因为基本数据类型的变量是存放在栈中的,包装类的变量是在堆中,栈的操作速度比堆快很多。

 

8、今早的将不再使用的变量引用赋给null

    这样做可以帮助jvm更快的进行内存回收。当然很多人其实对这种做法并不感冒。

 

9、在finally块中对资源进行释放

    典型的场景是使用io流的时候,不论是否出现异常最后都应该在finally中对流进行关闭。

 

10、在HashMap中使用一个Object作为Key时要注意如何区分Object是否相同

    在jdk的HashMap实现中,判断两个Object类型的Key是否相同的标准是hashcode是否相同和equals方法的返回值。如果业务上需要对两个数据相同的内存对象当做不同的Key存储到HashMap中就要对hashcode和equals方法进行覆盖。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值