在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。所以养成好的代码编写习惯非常重要。下面我们就来具体地分析一下:
1、尽量重用对象
比如:String 对象的使用中,出现字符串连接情况时应用StringBuffer 代替。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。
2、尽量使用局部变量
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。
其他变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。
3、Java 编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,会导致严重的后果。
4、对象使用完毕,应手动置成null
JVM回收垃圾的条件是:对象不在被引用;然而,JVM的GC并非十分的机智,即使对象满足了垃圾回收的条件也不一定会被立即回收。所以,建议我们在对象使用完毕,应手动置成null。
5、尽量减少对变量的重复计算
比如:
for(int i = 0; i < list.size; i ++) {
}
应替换为:
for(int i = 0,len = list.size(); i < len; i ++){
}
6、尽量采用lazy loading策略,即在需要的时候才开始创建
比如:
String str = “abc”;
if(i == 1) {
list.add(str);
}
应替换为:
if(i == 1) {
String str = “abc”;
list.add(str);
}
7、不要在循环中使用捕获异常机制,应把其放置在最外层。
8、array(数组) 和 ArryList的使用
array([]):最高效;但是其容量固定且无法动态改变;
ArrayList:容量可动态增长;但牺牲效率;
基于效率和类型检验,应尽可能使用array,无法确定数组大小时才使用ArrayList!
9、尽量使用HashMap和ArrayList ,除非必要,否则不推荐使用HashTable和Vector,后者由于使用同步机制,而导致了性能的开销。
10、用switch-case替代冗长的if-else-if
比如:
int i=9; if(i == 0) { } else if(i == 1) { } else if(i == 2) { } else if(i == 3) { } else if(i == 4) { } else if(i == 5) { } else if(i == 6) { } else if(i == 7) { } else if(i == 8) { } else if(i == 9) { }应替换为:
相关推荐
非常实用的java代码优化策略详解,从变量声明、初始化、字符串链接、异常处理、IO、数组等各个方面进行优化,非常有参考价值。
主要介绍了Java利用策略模式优化过多if else代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
summo-springboot-interface-demo 优化接口设计接口限流策略JAVA代码
用于解决该问题的蚁群算法基于 Max-Min Ant System ...为此,我们使用框架上可用的信息素初始化策略StartPheromoneMatrix,并扩展更新策略以满足我们问题的需要。 更多详情、使用方法,请下载后阅读README.md文件
基于Java的通过预测执行时间来优化调度的策略源码(课程作业).zip基于Java的通过预测执行时间来优化调度的策略源码(课程作业).zip基于Java的通过预测执行时间来优化调度的策略源码(课程作业).zip基于Java的通过...
粒子群优化代码java粒子群算法简称PSO,它的基本思想是模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多...
Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...
1.什么是编程语言。 编程思想比编程语言更加重要 2.为什么要进行性能优化。...一般代码优化 3。容器优化 JVM优化配置 Tomcat优化配置 4。数据库优化 1.减少数据访问 索引 sql的执行计划 2.减少返回的数据 分页
一个使用蚁群算法解决流水车间调度问题的 Java 程序 实现的流程具有以下特点: 我们有专门的 Ants 来构建可能的解决方案,同时遍历问题图。每个解决方案的质量由其制造跨度表示。 Ant 构建解决方案后,会使用本地...
文档首先阐述了MyBatis相较于传统JDBC的优势,如简化数据库操作、提高代码可维护性,并通过配置文件将SQL与Java代码分离。MyBatis通过XMLConfigBuilder类解析配置文件,创建SqlSessionFactory,进而生成SqlSession,...
工作总结!日志打印的15个建议 25种代码坏味道总结+优化示例 聊聊日常开发中,如何减少bug呢? 工作四年,分享50个让你代码更好的小...一次代码优化实践,用了模板方法+策略+工厂方法模式 保证接口数据安全的10种方案
详细描述了Java计算器接口,利用UML建模工具实现完整的代码
optimization_manuals(一个老外写的有关各种编程优化方法的主题) 里面有各种优化手段,很详细,文件列表如下: instruction_tables.pdf microarchitecture.pdf optimizing_assembly.pdf optimizing_cpp.pdf ...
本资源为一套完整的基于Java技术的小区物业管理系统,包含源代码及详细论文文档。该系统采用主流的Java开发框架,如Spring、Hibernate等,实现了小区物业管理的各项核心功能,包括业主信息管理、房屋管理、费用管理...
使代码更易于理解和维护,因为设计模式通常已经在实际项目中经过验证和优化。 增强软件的可扩展性和灵活性,因为设计模式有助于构建更加模块化和可扩展的系统。 提高开发效率和代码质量,因为设计模式提供了针对常见...
3、合理使用输入输出类库,采用必要的IO优化策略; 4、使用多线程实现并行爬取,合理使用线程同步策略; 5、网络通信可采用TCP或者URL相关类库; 6、处理程序异常,能够采用自定义异常; 7、可设置不同的起始URL; 8...
关联代码优化 cache对其 分支预测 copy on write 内联优化 系统优化 cache 延迟计算 数据预读 异步 轮询与通知 内存池 模块化 工程架构能力 开发语言 运维与监控 监控 系统监控 日志监控 流量...
优化策略:在能有效评估ArrayList数组初始值⼤⼩的情况下,指定其容量⼤⼩有助于性能提升,避免频繁的扩容。 public booleanadd(E e) { ensureCapacityInternal(size+ 1); //Increments modCount!! 确保内部数组有...
Java免税商品优选购物商城设计与实现代码资源介绍 本资源是一份详尽的Java毕业设计项目,聚焦于基于Spring Boot框架开发的免税商品优选购物商城。该项目不仅涵盖了商城的前后端开发,还涉及了数据库设计、系统架构...
UrlRewriter Java v2.0 RC1_urlrewriterjava 是一个用于 Java Web 应用的 URL 重写工具,旨在帮助开发人员简化和优化网站 URL 结构,提高用户体验和搜索引擎友好度。该工具基于 Java 编程语言开发,适用于各种基于 ...