JAVA代码的优化分为两个方面:

一、减小代码的体积。二、提高代码的执行效率。

======================================================================================

一、减小代码的体积

1.如果要改动代码尽量集中在一处修改,例如要修改某些属性的值,可以写一个统一化的方法对属性进行修改。

2.如果有一个功能超过两次被使用,可以考虑把它封装一个静态的方法写在公共的Utils中。

3.如果有超过两个子类在某个函数中做了相似但又不同的操作,可以考虑将这个函数在父类中抽象化。

 

二、提高代码的执行效率

1.时间复杂度尽量要小(越少的loop嵌套,代码的执行效率越高)。写代码时可以多采用过滤的方式提取出目标数据,尽量不使用循环的方式提取。

2.写代码切勿相互依赖,尽量做到解耦(例如A Service中调用了B Service中的方法,同理B也调用了A,这样是不可以的)。

3.减少动态运算的语句,宁可浪费一点内存去处理数据,也不可让它动态运算浪费CPU。

4.减少对象的创建,由于JVM创建对象的时候会花费时间生成,当对象失效的时候JVM还会对其进行垃圾回收,例如对字符串的拼接尽量使用StringBuffer、if判断中对象的使用可以在判断中创建。如下代码:

//低效率的写法
List list = new ArrayList<>();
int[] arr = new int[]{0,1,5,8,15};
for(int i = 0; i <= arr.length; ++i;){
String name = new String("Jack");
if(arr[i]==i){
list.add(name);
}
}
//高效率的写法
List list = new ArrayList<>();
int[] arr = new int[]{0,1,5,8,15};
for(int i = 0, len = arr.length; i <= len; ++i;){
if(arr[i]==i){
String name = new String("Jack");
list.add(name);
}
}

5.如果成员变量和局部变量都能保证功能的实现,尽量使用局部变量。因为局部变量存储在栈中速度较快,成员变量存储在堆中速度较慢。

6.初始化变量时尽量不要写在循环中,如下代码:

//低效率的写法
for(int i = 0; i <= n; ++i){
String name = "Jack";
System.out.println(name);
}
//高效率的写法
String name = "Jack";
for(int i = 0; i <= n; ++i){
System.out.println(name);
}

7.数据库的连接和I/O流的操作,在完成使用后应当及时的进行关闭。

8.try catch不要写在循环的嵌套中,尽量写在循环的最外层,异常的使用要谨慎。

浅谈JAVA代码优化的更多相关文章

  1. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  2. 浅谈Java中的equals和==(转)

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...

  3. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  4. 浅谈Java中的equals和==

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...

  5. 浅谈JAVA集合框架

    浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...

  6. 浅谈java性能分析

    浅谈java性能分析,效能分析 在老师强烈的要求下做了效能分析,对上次写过的词频统计的程序进行分析以及改进. 对于效能分析:我个人很浅显的认为就是程序的运行效率,代码的执行效率等等. java做性能测 ...

  7. 浅谈Java中的深拷贝和浅拷贝(转载)

    浅谈Java中的深拷贝和浅拷贝(转载) 原文链接: http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: ...

  8. !! 浅谈Java学习方法和后期面试技巧

    浅谈Java学习方法和后期面试技巧 昨天查看3303回复33 部落用户大酋长 下面简单列举一下大家学习java的一个系统知识点的一些介绍 一.java基础部分:java基础的时候,有些知识点是非常重要 ...

  9. 浅谈Java中的深拷贝和浅拷贝

    转载: 浅谈Java中的深拷贝和浅拷贝 假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(bool ...

随机推荐

  1. 通过Tomcat Manager拿shell

    一.通过弱口令登录Tomcat后台 二.制作木马.war 1安装JDK 2.写一个jsp小马(我的小马是6.jsp) 3.cmd进小马的目录,然后运行 jar cvf shell.war  6.jsp ...

  2. python-网络安全编程第八天(实战高精度密码字典生成器)

    前言 emmmm 高精度密码字典源码 1.py import exrex import sys #url过滤处理 def host_para(host): if '://' in host: host ...

  3. Camtasia中对录制视频进行编辑——视觉效果

    视频剪辑对很多人来说是一件很头痛的事,因为对着屏幕一下一下的进行调整会让人十分的心烦,导致花费了时间但是剪辑出来的视频质量却并不高.或许是因为你没有选择一款合适的软件,因为一款高质量的软件往往会给人带 ...

  4. ABBYY FineReader添加盖章戳记

    PDF编辑器允许您如同在纸质文档上盖章一样在 PDF 文档上添加戳记.您可以从可用的戳记列表中选择戳记或者创建自己的戳记,然后添加任何所需的文本.戳记日期和时间或者图像. 如果要在页面上加上戳记,可以 ...

  5. FL Studio在线面板的作用

    FL Studio的在线面板主要是用来显示其自身与Image-Line公司相关的新闻.我们点击它后会看到一个新闻列表菜单,其中每一个项目都包含日期.标题.简介以及URL.详细的内容我们将在下文介绍,一 ...

  6. pytest和unittest中参数化如何做

    参数化应用场景,一个场景的用例会用到多条数据来进行验证,比如登录功能会用到正确的用户名.密码登录,错误的用户名.正确的密码,正确的用户名.错误的密码等等来进行测试,这时就可以用到框架中的参数化,来便捷 ...

  7. python3基础2

    # 列表(list.数组).元组.字典 list_ = ["a", "c", 1, 2] print(list_) # list_.append("c ...

  8. [Python]环境配置之pip加速

    背景 学习 Python 的话,仅掌握标准库是远不够的,有很多好用的第三方库我们也需要用到的,比如,由鼎鼎大名的 K 神开发的爬虫必不可少的 requests 库,一般都是必装的库吧.安装第三方库当然 ...

  9. LaTeX中的数学公式之多行公式

    多行公式的代码及注释: 显示效果:

  10. jquery on 动态生成绑定事件

    $(document).on("mouseenter", ".v6-div-kind-ok", function () { alert();});