Java代码优化笔记
2024-10-20 09:25:13
- 指定类、方法的final修饰符
为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大
- 尽量重用对象
重用对象可以减少虚拟机对对象的维护而且后期减少时间回收和处理
- 尽可能使用局部变量
方法内的参数都保存在栈中,而类变量是保存在堆内存中,栈中方法变量随着方法结束也随之消失,而堆中还需要回收。
- 尽量减少对变量的重复计算
i < list.size() 尽量减少这种操作
- 尽量使用懒加载的策略,需要时候在操作
- 慎用异常,在循环内避免出现try catch这样的操作
- 尽量初始化集合等等的大小。
比如ArrayList、LinkedLlist、StringBuilder、StringBuffer、HashMap、HashSet等等
- 乘法和除法使用移位操作
a = val * 8; a = val << 3;
- 不要创建一些不使用的对象,不要导入一些不使用的类
- 使用数据库连接池和线程池
- 顺序插入和随机访问比较多的场景使用ArrayList,元素删除和中间插入比较多的场景使用LinkedList
- 把一个基本数据类型转为字符串,基本数据类型.toString()是最快的方式、String.valueOf(数据)次之、数据+""最慢
- 对资源的
close()
建议分开操作
最新文章
- strcat 函数的实现
- Linux C 字符函数 getchar()、putchar() 与 EOF 详解
- remote debug in visual studio
- reactjs学习一(环境搭配react+es6+webpack热部署)
- 2817 Tangent的愤怒 - Wikioi
- A Fast Priority Queue Implementation of the Dijkstra Shortest Path Algorithm
- JavaScript之闭包与高阶函数(一)
- Directx 3D编程实例:绘制3DMesh
- TForm类
- 学习笔记 intent属性
- 微软发布Xamarin Live Player:Win10可开发iOS
- shell传递参数
- 第三章 服务治理:Spring Cloud Eureka
- 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析
- sql server 小技巧(6) Cannot resolve the collation conflict between ";Latin1_General_CI_AI"; and ";Chinese_PRC_CI_AS"; in the equal to operation
- Spring Boot工程结构推荐程结构(最佳实践)
- OK335xS 256M 512M nand flash make ubifs hacking
- navicat 激活流程
- Web开发:URL编码与解码
- ASP.NET Web API编程——异常捕获
热门文章
- C# 实现简单仿QQ登陆注册功能
- UWP Button添加圆角阴影(三)
- 背水一战 Windows 10 (61) - 控件(媒体类): InkCanvas 涂鸦编辑
- C++获取系统信息(IP地址、硬件信息等)
- iOS-项目开发1-UIImage
- Linux巩固记录(6) Hbase环境准备-zookeeper安装
- postgresql-查看各个数据库大小
- postgresql-int,bigint,numeric效率测试
- 基于Django+celery二次开发动态配置定时任务 ( 一 )
- Nodejs的模块系统