使用java开发的一些技巧

1.   最小的作用范围

(1)尽量使用局部变量,如果需要使用成员变量的地方,可见度尽可能小(private,protected,默认,public)

    (2)确认成员变量为不可变性应申明为final

    (3) 一个类的方法需要提供给子类有不同的实现而进行重写,或者需要把实现交给子类去完成应该声明为protected。其它的统统声明为private 尽可能的把方法隐藏起来, public方法越少这个类就越简洁。就更便于使用,测试和重构

    (4) 访问成员变量总是使用this关键字。这样使得我们总是给期望的成员变量进行访问。而解决变量的多议性。

    (5) 局部变量名变该相对短而成员变量名应该相对冗长。例如,i应该是一个变部变量, userInfo应该是一个成员变量。

2.    不要使用字面常量

    除了一些大家都明白的如0值,空值null,和空串””外,不要在java代码中使用字面常量(如下面的数字100)

if (ware.getWareDetailList() != null&& ware.getWareDetailList().size() > 100) {

request.setAttribute(super.SERVICE_BUSINESS_INFO, "物品数量超过了上限,请您将物品数量控制在100件以内");

    看上面的例子。无耐的是,我们经常在开发中大量出现这样的代码。

    (1) 这样的代码没有明确的意义。必须被迫阅读代码来猜测100的含义。

    (2) 代码容易出错,我们必须被迫比较不同的字面值来确信它们是相同的,而且我们很容易错误的输入。

    (3) 数值也定死了,修改100这个常数时,可能需要修改多处,这样造成了不必要的麻烦,即要吧采用如下:

private static final int WARE_COUNT_LIMIT = 100;

……

       if (ware.getWareDetailList() != null&& ware.getWareDetailList().size() > WARE_COUNT_LIMIT) {

request.setAttribute(super.SERVICE_BUSINESS_INFO, "物品数量超过了上限,请您将物品数量控制在100件以内");

    (4)  有时这样定义个常量也无法应对需求,这样的情况还可以采用动态赋值或重写常量字段子那个方法.

3.   字符串处理

(1) 在处理大量字符串累加时,应该使用StringBuffer来提高性能,而不应使用String.

(2) 在用Log4j等日志组件打印信息时,应该先判断日志级别再打印,这样能先避免字符串累加带来的性能问题.如下:

    If(log.isDebug()){

       log.debug(WARE_COUNT_LIMIT+“物品数量不对,请重请输入!”);

}

(3)不要使用String s = new String(“leo”);

        应该使用String s = “leo”;

              第一种方式会创建N个字符串,第二种会把字符串存到缓存.如果缓存中没有该值,则再创建.

4. 空指指针针异常

    NullPointException是一个常见的错误,由于他是unchecked异常,所以总是隐式的出现,应采取一些原则来规避这样的情况发生.

a.     不要依赖外界的控制而忽略了自身空指针异常的处理.

b.    在对变量进行检查时,发现null””的情况应该即时处理.

c.    例子如下:

list null时,那么它后面的遍历代码就抛出NullPointException.所以在遍历集合时应该总是小心一些。

for(int i = 0; list != null && i < list.size();i++){

...

}

If(user==null || “”.equals(user)){

    ...

}

5.在处理系统日志时,尽量以if(logger.isDebugable()){ logger.xxx();}方式去先判断,再记录
6.关于异常处理的一个文章:http://klyuan.javaeye.com/blog/72170

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值