文档章节

java代码效率优化

踏破铁鞋无觅处
 踏破铁鞋无觅处
发布于 2018/10/15 21:36
字数 680
阅读 7
收藏 0

1、 尽量指定类的final修饰符 带有final修饰符的类是不可派生的。 

2、 尽量重用对象。 

3、 尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。

4、 不要重复初始化变量 

5、 在JAVA + ORACLE 的应用系统开发中,java中内嵌的SQL语句尽量使用大写的形式,以减轻ORACLE解析器的解析负担。

6、 Java 编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,即使关闭以释放资源。 

7、 由于JVM的有其自身的GC机制,不需要程序开发者的过多考虑,从一定程度上减轻了开发者负担,但同时也遗漏了隐患,过分的创建对象会消耗系统的大量内 存,严重时会导致内存泄露,因此,保证过期对象的及时回收具有重要意义。

8、 在使用同步机制时,应尽量使用方法同步代替代码块同步。

9、 尽量减少对变量的重复计算

10、尽量采用lazy loading 的策略,即在需要的时候才开始创建。

11、慎用异常 

12、不要在循环中使用: 
Try { 
} catch() { 

应把其放置在最外层。

13、StringBuffer 的使用,可以通过StringBuffer的构造函数来设定它的初始化容量,这样可以明显地提升性能,无论何事只要StringBuffer到达它的最大容量它就不得 不创建一个新的字符数组然后重新将旧字符和新字符都拷贝一遍。

14、合理的使用Java类 java.util.Vector。 Vector的初始存储能力 是10个元素,如果新元素加入时存储能力不足,则以后存储能力每次加倍。Vector类就对象StringBuffer类一样,每次扩展存储能力时,所有 现有的元素都要复制到新的存储空间之中。

15、当复制大量数据时,使用System.arraycopy()命令。

16、代码重构:增强代码的可读性。

17、不用new关键词创建类的实例 

18、乘法和除法,用移位操作替代乘法操作可以极大地提高性能。

19、在JSP页面中关闭无用的会话。 

本文转载自:http://blog.163.com/user_zhaopeng/blog/static/16602270820122105731329/

共有 人打赏支持
踏破铁鞋无觅处
粉丝 3
博文 102
码字总数 32560
作品 0
海淀
程序员
私信 提问
【转】浅谈Java与C/C++的性能对比

大多数程序员都认为C/C++会比Java语言快,甚至于觉得从Java语言诞生以来,“执行速度缓慢”的帽子就应当被扣在头顶,这种观点的出现是由于Java刚出现的时候JIT编译技术还不成熟,主要靠解释器...

mj4738
2011/11/29
0
13
给Java字节码加上”翅膀“的JIT编译器

给Java字节码加上”翅膀“的JIT编译器 上面文章在介绍Java的内存模型的时候,提到过由于编译器的优化会导致重排序的问题,其中一个比较重要的点地方就是关于JIT编译器的功能。JIT的英文单词是...

九劫散仙
2018/06/20
0
0
01《深入拆解JVM》之Java代码是怎么运行的?

本人本来也想买极客时间中Oracle 高级研究员,计算机博士郑雨迪老师的《深入拆解Java虚拟机》的专栏,但是朋友刚好买了,可以直接邀请我读,也就省去我的银子。由于知识版权原因,不能直接分...

飞鱼说编程
2018/07/24
0
2
01-《深度拆解JVM》之Java代码是怎么运行的?

一、Java代码的运行方式 可以在开发工具中运行 可以双击执行 jar 文件运行 可以在命令行中运行 可以在网页中运行 当然,这些执行方式都离不开 JRE,也就是 Java 运行时环境。实际上,JRE 仅包...

飞鱼说编程
2018/09/07
0
0
JVM系列第4讲:从源代码到机器码,发生了什么?

在上篇文章我们聊到,无论什么语言写的代码,其到最后都是通过机器码运行的,无一例外。那么对于 Java 语言来说,其从源代码到机器码,这中间到底发生了什么呢?这就是今天我们要聊的。 如下...

陈树义
2018/11/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

智能合约漏洞 -- 默认可见性修饰符

Solidity函数有visibility指定符,标明函数如何被允许访问。Visibility决定一个函数是否能被用户,被其他派生合约,从外部调用,仅从内部调用等等。有4个visibility指定符.函数默认的visibil...

怎当她临去时秋波那一转
45分钟前
1
0
Guava学习之Splitter 管道符分割

String str = "11|"; //方式一 分割 List<String> strs = Splitter.on("|").splitToList(str); //方式二分割 String[] strs2 = str.split("\\|"); ......

qimh
今天
5
0
flutter 保存视频 立即刷新

保存目录问题 String savePath= path.join(await _findLocalPath(),"DCIM","Camera"); 我的是小米8 这里面没有用到通知功能,也能够直接显示出来。 参考文章:https://blog.csdn.net/cod......

大灰狼wow
今天
2
0
MongoDB

关于MongoDb 1、MongoDB是一个开源的、基于分布式的、面向文档存储的非关系型数据库。 2、是非关系型数据库当中功能最丰富、最像关系数据库的。 3、由C++编写, MongoDB可以运行在Windows、u...

谢思华
今天
7
0
Node.js 进程平滑离场剖析

本文由云+社区发表 作者:草小灰 使用 Node.js 搭建 HTTP Server 已是司空见惯的事。在生产环境中,Node 进程平滑重启直接关系到服务的可靠性,它的重要性不容我们忽视。既然是平滑重启,就涉...

腾讯云加社区
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部