java 高性能代码优化

原创 2018年04月16日 00:38:06

 1、避免创建不必要的对象

       创建对象从来都不应该是一件随意的事情,因为创建一个对象就意味着垃圾回收器需要回收一个对象,而这两步操作都是需要消耗时间的。虽说创建一个对象的代价确实非常小,并且Android 2.3版本当中又增加了并发垃圾回收器机制,这让GC操作时的停顿时间也变得难以察觉,但是这些理由都不足以让我们可以肆意地创建对象,需要创建的对象我们自然要创建,但是不必要的对象我们就应该尽量避免创建。
代码块一:
[java] view plain copy
  1. List<String> tempList = new ArrayList<String>();  
  2. String value = "";  
  3. for(int i=0;i<20;i++){  
  4.     value = ""+i;  
  5.     tempList.add(value);  
  6. }  
  7. value = null;  
代码块二:
[java] view plain copy
  1. List<String> tempList = new ArrayList<String>();  
  2. for(int i=0;i<20;i++){  
  3.     String value = ""+i;  
  4.     tempList.add(value);  
  5. }  
从上面的代码块来看,第二种显然比第一种更加节省资源。

2、静态比抽象要优
     如果你并不需要访问一个对象中的某些字段,只是想调用它的某个方法来去完成一项通用的功能,那么可以将这个方法设置成静态方法,这会让调用的速度提升15%-20%,同时也不用为了调用这个方法而去专门创建对象了,这样还满足了上面的一条原则。另外这也是一种好的编程习惯,因为我们可以放心地调用静态方法,而不用担心调用这个方法后是否会改变对象的状态(静态方法内无法访问非静态字段)。
[java] view plain copy
  1. private static int tempValue = 1;  
  2.   
  3. public static int getValue1(){  
  4.     return tempValue;  
  5. }  
  6.   
  7. public int getValue2(){  
  8.     return tempValue;  
  9. }  
3、使用增强型for循环语法
    增强型for循环(也被称为for-each循环)可以用于去遍历实现Iterable接口的集合以及数组,这是jdk 1.5中新增的一种循环模式。当然除了这种新增的循环模式之外,我们仍然还可以使用原有的普通循环模式。
代码块一:
[java] view plain copy
  1. for(int i=0;i<tempList.size();i++){  
  2.     System.out.println("-----tempList:"+tempList.get(i));  
  3. }  
代码块二:
[java] view plain copy
  1. int len = tempList.size();  
  2. for(int i=0;i<len;i++){  
  3.     System.out.println("-----tempList:"+tempList.get(i));  
  4. }  
代码块三:
[java] view plain copy
  1. for (String string : tempList) {  
  2.     System.out.println("-----tempList:"+string);  
  3. }  
代码块三优于代码块二,代码块二优于代码块一。
4、避免在内部调用Getter/Setter方法
    因为字段搜寻要比方法调用效率高得多,我们直接访问某个字段可能要比通过getters方法来去访问这个字段快3到7倍。不过我们肯定不能仅仅因为效率的原因就将封装这个技巧给抛弃了,编写代码还是要按照面向对象思维的,但是我们可以在能优化的地方进行优化,比如说避免在内部调用getter/setter方法。
[java] view plain copy
  1. private int value = 1;  
  2. public int getValue() {  
  3.     return value;  
  4. }  
  5. public void setValue(int value) {  
  6.     this.value = value;  
  7. }  
这是一段get/set方法的代码块,我们来看使用.
[java] view plain copy
  1. //setValue(12); 不建议这么使用  
  2. value = 12;  
  3. //int tt = getValue(); 不建议这么使用  
  4. int tt = value;  
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36838191/article/details/79955462

35 个 Java 代码性能优化总结

 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用...
  • qq_41699100
  • qq_41699100
  • 2018-03-14 10:21:08
  • 29

高性能前端优化的十四条准则

说明:本文是在阅读完Steve Souder的《高性能网站建设指南》后写的。1.规则1——减少HTTP请求只有10%到20%的最终用户响应时间花在接收请求的HTML文档上面。剩下80%到90%的 时间...
  • zjuwwj
  • zjuwwj
  • 2016-12-08 20:40:34
  • 368

Java程序性能优化——性能调优层次

为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化。除了最常见的代码优化外,在软件架构上、JVM虚拟机层、数据库以及操作系统层都可以通过各种手段进行调优,从而在整体上提升系统的性能。设...
  • ma_hoking
  • ma_hoking
  • 2015-04-23 22:04:44
  • 1508

JAVA代码优化.txt

  • 2010年03月21日 22:33
  • 8KB
  • 下载

java代码优化浅析

优化原则 代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换。程序代码可以是中间代码,也可以是目标代码。等价的含义是使得变换后的代码运行结果与变换前代码运行结果相同。优化的含...
  • qq_32347977
  • qq_32347977
  • 2016-06-30 11:30:45
  • 1605

高性能java代码优化建议

  • 2013年07月09日 13:07
  • 14.74MB
  • 下载

java代码优化总结

下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。   1. 尽量在合适的场合使用单例   使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单...
  • paul342
  • paul342
  • 2016-08-30 15:20:16
  • 1710

Java代码性能调优

一、类和对象使用技巧 1、尽量少用new生成新对象         用new创建类的实例时,构造雨数链中所有构造函数都会被自动调用,操作速度较慢。在某些时候可复用现有对象。比如在进行大量S...
  • linlzk
  • linlzk
  • 2014-12-25 21:21:01
  • 8267

Java代码优化提点

页前导语        代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换。程序代码可以是中间代码,也可以是目标代码。等价的含义是使得变换后的代码运行结果与变换前代码运行结果相同。优化的含义...
  • boonya
  • boonya
  • 2013-10-30 11:04:16
  • 8118

java代码优化六大原则

单一职责代码优化第一步,单一职责原则 (Single Responsibility Principle)。对于一个java类,应该仅有一个引起它变化的原因,也就是说,一个类中,应该是一组相关性很高的函...
  • bunny1024
  • bunny1024
  • 2017-05-29 20:35:29
  • 3420
收藏助手
不良信息举报
您举报文章:java 高性能代码优化
举报原因:
原因补充:

(最多只允许输入30个字)