Java代码优化策略
1、生成对象时,合理分配空间和大小:new ArrayList(100);
2、优化for循环:
Vector vect = new Vector(1000);
For(int i=0; i<vect.size(); i++){}
改写成:
int size = vect.size();
For(int i=0; i<size; i++){}
如果size=1000,就可以减少1000次size()的系统调用开销,避免了循环体重复调用。
3、new一个实例对象,new在什么位置(尽量在使用时创建该对象)
4、异常处理技巧
5、尽量使用局部变量和静态变量
6、尽量不使用多线程同步
7、尽可能的使用Java自身提供的API
8、尽量减少I/O操作(控制台、日志)
9、尽量使用缓存流(尽可能使用带有Buffer的类代替没有Buffer的类,BufferedReader、BufferWriter、BufferedInputStream)
10、Sql优化、存储过程、视图、连接池(C3P0、DBCP)
11、数据库数据分级存储:
将经常访问的数据和访问频度低的数据,分别存放到不同的分区,甚至存放到不同的数据库服务器,以便合理分配硬盘I/O及系统I/O。
12、缓存策略:
如果有些数据要经常从数据库中读取,同时,这些数据又不经常变化,这些数据就可以在系统中缓存起来,使用时直接读取缓存,而不用频繁的访问数据库读取数据。
缓存工作可以在系统初始化时一次性读取数据,特别是一些只读的数据,当数据更新时更新数据库内容,同时更新缓存值。
Java常用的缓存技术产品有:Redis、MemoryCache、OSCache等。
13、html静态化
14、不用保存太多的信息在HttpSession中
15、在使用大数据对象时,建议在对象使用完毕后,手动设置成null(避免内存一出)。
尽可能地使用基本类型而不是用对象类型。例如:使用int,而不使用Integer。
Java代码优化策略的更多相关文章
- JAVA记录-java代码优化策略
java代码优化策略 1.生成对象时,合理分配空间和大小:new ArrayList(100); 2.优化for循环: Vector vect = new Vector(1000); For(int ...
- Java代码优化,都有哪些常用方法?
Java代码优化是Java编程开发很重要的一个步骤,Java代码优化要注重细节优化,一个两个的细节的优化,产生的效果不大,但是如果处处都能注意代码优化,对代码减少体积.提高代码运行效率是有巨大帮助的, ...
- 关于Java代码优化的44条建议!
关于Java代码优化的N条建议! 本文是作者:五月的仓颉 结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,作者的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼 ...
- Java代码优化的30个小技巧
前言 我之前写过两篇关于优化相关的问题:<聊聊sql优化的15个小技巧>和<聊聊接口性能优化的11个小技巧>,发表之后,在全网受到广大网友的好评.阅读量和点赞率都很高,说明了这 ...
- Android应用性能优化笔记(java代码优化)
Java代码优化 缓存结果: 如果计算代价过高,最好把过去的结果缓存起来. 伪代码如下: result=cache.get(n); //输入参数n作为键 if(result==nul ...
- (转)Java 代码优化过程的实例介绍
简介: 通过笔者经历的一个项目实例,本文介绍了 Java 代码优化的过程,总结了优化 Java 程序的一些最佳实践,分析了进行优化的方法,并解释了性能提升的原因.从多个角度分析导致性能低的原因,并逐个 ...
- Java的策略模式
策略模式也是我们经常使用的模式,它的定义如下:将可变的部分从程序中抽象分离出来成为算法接口,在该部分下分别封装一系列算法实现并使它们可以相互替换. 举个例子,我们现在有三种支付方式:支付宝支付,微信支 ...
- Java代码优化方案 J2ME内存优化
Java代码优化方案 J2ME内存优化 从几本书上,N个网站上整理的一些JAVA代码优化方案,最近的项目只有1M内存可用,必须很抠门了~J2ME项目更要注意的 避免内存溢出 l 不用的对象释放(置空) ...
- Java代码优化(长期更新)
前言 2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,我的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸 ...
随机推荐
- 数字运算、ASCII
num20 = dollar/20;num10 = (dollar - 20*num20)/10;num5 =(dollar-20*num20-10*num10)/5;//可以写为num5 = (do ...
- nyist0j 35 表达式求值
题目链接:表达式求值 该题以前做过但是WA了,今天终于把他解决了,各种悲剧啊,又是考虑不周到啊................... 所以贴出来纪念一下,并作为一个警示 /**** ps:注意当遇到 ...
- C#实现大数据量TXT文本数据快速高效去重
原文 C#实现大数据量TXT文本数据快速高效去重 对几千万的TXT文本数据进行去重处理,查找其中重复的数据,并移除.尝试了各种方法,下属方法是目前尝试到最快的方法.以下代码将重复和不重复数据进行分文件 ...
- 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置
经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - ...
- cocos2dx mac环境搭建
1)下载cocos2dx 2.2.3并解压
- PHP下通过file_get_contents\curl的方法实现获取远程网页内容(别忘了还有PhpRPC)
[php]PHP中file_get_contents()与file_put_contents()函数细节详解 php函数file_get_contents(一) 案例: 早在2010年时候遇到过这样的 ...
- UVA-548Tree(二叉树的递归遍历)
Tree Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu Submit Status Des ...
- hdoj Scaena Felix
Scaena Felix Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- javascript中对变量类型的推断
本文正式地址:http://www.xiabingbao.com/javascript/2015/07/04/javascript-type 在JavaScript中,有5种基本数据类型和1种复杂数据 ...
- 读书笔记 SQL 事务理解
事务的ACID属性 Atomicity 原子性 每个事务作为原子单元工作(即不可以再拆分),也就是说所有数据库变动事务,要么成功要么不成功. SQL Server把每个DML或者 DDL命令都当做一个 ...