码迷,mamicode.com
首页 > 编程语言 > 详细

Java一些小的思想

时间:2017-11-03 14:08:43      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:运算符   ima   失败   oid   否则   字符串   uil   ret   integer   

1.用if+return代替复杂的if...else(if+return)

    public static void test1(String str) {
        if ("1".equals(str)) {
            System.out.println("输入的参数是1");
            return;
        }
        if ("2".equals(str)) {
            System.out.println("输入的参数是2");
            return;
        }
        if ("3".equals(str)) {
            System.out.println("输入的参数是3");
            return;
        }
        System.out.println("你输入的不是123`````````");
        // ...这里可以写不满足上述条件的处理
    }

 

2.尽量减少对变量的重复计算(for循环的用法)

明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作:

 

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

{...}

 

 

建议替换为:

 

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

{...}

 

 

这样,在list.size()很大的时候,就减少了很多的消耗

 

补充:

用第一种方法时进行非空验证:

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

{...}

 

3.循环内不要不断创建对象引用

例如:

 

for (int i = 1; i <= count; i++)

{

    Object obj = new Object();    

}

 

 

这种做法会导致内存中有count份Object对象引用存在,count很大的话,就耗费内存了,建议为改为:

 

Object obj = null;

for (int i = 0; i <= count; i++)

{

    obj = new Object();

}

 

 

这样的话,内存中只有一份Object对象引用,每次new Object()的时候,Object对象引用指向不同的Object罢了,但是内存中只有一份,这样就大大节省了内存空间了。

 

4、尽量使用HashMap、ArrayList、StringBuilder,除非线程安全需要,否则不推荐使用Hashtable、Vector、StringBuffer,后三者由于使用同步机制而导致了性能开销

5.字符串变量和字符串常量equals的时候将字符串常量写在前面

String str = "123";

if (str!=null && "123".equals(str))

{

    ...

}

这么做主要是可以避免空指针异常

6.任何数据在使用之前进行非空判断(包括对象,list)

        List<Employeeexam> employeeInExams = exam.getEmployeeInExams();
        List<Employeeexam> employeeOutExams = exam.getEmployeeOutExams();
        boolean insertEmployeeResult = false;
        int in_size, out_size;
        in_size = employeeInExams != null ? employeeInExams.size() : 0;
        out_size = employeeOutExams != null ? employeeOutExams.size() : 0;
        Integer employeeNum = in_size + out_size;

7.if...else...语句用条件运算符 

return examMapper.deleteByPrimaryKey(id) > 0 ? true : false;
result = examService.deleteExamById(examId) ? "删除成功!" : "删除失败!";

 

Java一些小的思想

标签:运算符   ima   失败   oid   否则   字符串   uil   ret   integer   

原文地址:http://www.cnblogs.com/qlqwjy/p/7777655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!