java优化

2021-07-13 22:04

阅读:447

标签:输入   asn   命名   思想   io操作   string   出错   nal   follow   

一.优化的目

  程序用尽可能少的资源完成预定的任务

二.代码优化的目标

1.减小代码的体积

2.提高代码运行的效率

三.具体方法

1.string对象的使用中,字符串连接时应该使用StringBuilder/StringBuffer代替

2.减少对相同结果变量的多次重复运算

for (int i = 0; i 

  建议替换为:

int x= list.size;
for (int i = 0;i

3.尽量采用懒加载的策略,即在需要的时候才创建

String str = "aaa";if (i == 1){list.add(str);}

  建议替换为:

if (i == 1){String str = "aaa";list.add(str);}

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

for (int i = 1; i 

  建议替换为:

Object obj = null;for (int i = 0; i 

5.基本数据类型转为字符串反应最快的使用.toString

反应速度:toString>String.valueOf>数据+

原因:

1、String.valueOf方法底层调用了Integer.toString方法,但是会在调用前做  空判断

2、i + “”底层使用了StringBuilder实现,先用append方法拼接,再用toString方法获取字符串

乘法和除法使用移位操作

6.常量与变量比较,常量在前,避免空指针异常

if (str.equals("123")) {...}

  建议替换为:

if ("123".equals(str)){...}

7.public方法,形参要少

1.如果形参比较多(大于2个),不太契合面向对象编程思想

2.参数太多势必导致方法调用的出错概率增加

8.不要对超出范围的基本数据类型做向下强制转型

9.不要创建一些不使用的对象,不要导入一些不使用的类

10.程序运行过程中避免使用反射

11.使用同步代码块替代同步方法

12.使用最有效率的方式去遍历Map

public static void main(String args)

{

HashMap hm = new HashMap;

hm.put("111", "222");

Set> entrySet = hm.entrySet;

Iterator> iter = entrySet.iterator; while (iter.hasNext)

{

Map.Entry entry = iter.next;

System.out.println(entry.getKey + "\t" + entry.getValue);

}

}

  

13.乘法和除法使用移位操作,并加上注解

14.尽可能使用局部变量

15.尽量指定类、方法的final修饰符

16.尽量在合适的场合使用单例

17.将常量声明为static final,并以大写命名

18.程序运行过程中避免使用反射

19.使用数据库连接池和线程池(前者可以避免频繁地打开和关闭连接,后者可以避免频繁地创建和销毁线程)

20.使用带缓冲的输入输出流进行IO操作

21.尽量在合适的场合使用单例

22.尽量避免随意使用静态变量

23.异常只能用于错误处理,不应该用来控制程序流程。

24.不要在循环中使用try…catch…,应该把其放在最外层

25.不要创建一些不使用的对象,不要导入一些不使用的类

26.不要对数组使用toString方法

 

java优化

标签:输入   asn   命名   思想   io操作   string   出错   nal   follow   

原文地址:https://www.cnblogs.com/ynhk/p/9541217.html


评论


亲,登录后才可以留言!