• java代码优化


    基础

    1.善用条件表达式,来表示一般的if,else。
    if(a>0)  b=1;else  b=-1;   可以直接写成     b=(a>0?1:-1);
    判断常量,变量,字符串,表达式时,也可以用switch()代替if,else。

    2.用foreach代替传统的for循环。

    3.能够封装的操作,尽量封装起来,减少冗余。

    4.类名用名词命名,方法名用动词或者动词短语命名,返回boolean的方法用is开头开命名

    5.尽量避免大量的if else 嵌套。
    6.if语句的代码块,最好用{},方便后续的代码扩展。

    7.大量的if esle嵌套,可以通过多态或者枚举去简化
    8.位运算(&,|,^,<<,>>)的效率比普通的运算高。

    数组

    1.数组arr排序可以用Arrays.sort(arr);  
    最小值min即为arr[0],最大值max即为arr[arr.length-1]
    集合的排序可以用Collections.sort(),重写匿名Comparator对象的compare()方法,通过compareTo()比较。

    字符串

    1.连接字符串,尽量用StringBuffer的append方法,而不是String相加。可以节省内存,提高性能。

    2."字符串".equals(变量);和 变量.equals("字符串");

    最好选择第一种方式比较,如果采用第二种方式比较,当变量为null时,会报空指针异常.

    集合

    1.使用foreach遍历list和set集合。

    2.使用List时,最好初始化容量,否则数组会频繁扩容,浪费内存。


    多线程

    1.不要随意地在代码中新建线程,可以通过线程池实现。

    2.不要使用Executors去新建线程池,最好通过ThreadPoolExecutor指定线程池参数。

    Lambda

    1.在处理数组、字符串和集合的遍历、排序、取值等问题时,可以使用Lambda表达式,Streams api。
    stream构造流,filter过滤元素,map按给定的运算规则转换元素,forEach遍历,reduce合并元素.


    待补充。

  • 相关阅读:
    Swap Nodes in Pairs
    Remove Nth Node From End of List
    Rotate list
    历届试题_DNA比对
    斐波那契字符串_KMP
    字符串的模式匹配
    理解图像Garbor和HOG特征的提取方法及实例应用
    人眼定位和基于人眼的人脸姿态矫正_转载
    借助百度云API进行人脸识别
    { "result": null, "log_id": 304592860300941982, "error_msg": "image check fail", "cached": 0, "error_code": 222203, "timestamp": 1556030094 }
  • 原文地址:https://www.cnblogs.com/expiator/p/6077798.html
Copyright © 2020-2023  润新知