java优化

Posted ynhk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java优化相关的知识,希望对你有一定的参考价值。

一.优化的目

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

二.代码优化的目标

1.减小代码的体积

2.提高代码运行的效率

三.具体方法

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

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

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

  建议替换为:

int x= list.size;
for (int i = 0;i<x  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 <= count; i++){Object obj = new Object;}

  建议替换为:

Object obj = null;for (int i = 0; i <= count; i++) {obj = new Object; }

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<String, String> hm = new HashMap<String, String>;

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

Set<Map.Entry<String, String>> entrySet = hm.entrySet;

Iterator<Map.Entry<String, String>> iter = entrySet.iterator; while (iter.hasNext)

{

Map.Entry<String, String> entry = iter.next;

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

}

}

  

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

14.尽可能使用局部变量

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

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

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

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

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

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

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

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

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

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

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

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

 

以上是关于java优化的主要内容,如果未能解决你的问题,请参考以下文章

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化

如何优化C ++代码的以下片段 - 卷中的零交叉

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

java代码在片段活动中不起作用

java 代码片段【JAVA】

# Java 常用代码片段