Java编码规范及代码性能优化
来源:互联网 发布:淘宝店铺名片设计 编辑:程序博客网 时间:2024/05/08 16:01
一 Java编码规范及代码性能优化
1.尽量使用final修饰符。
2.尽量重用对象。
3.尽量使用局部变量。
4.不要重复初始化变量。
5.不用new关键字创建对象的实例。
6.java编程过程中,进行数据库连接,I/O流操作,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销。
7.过分的创建对象会消耗系统的大量内存,严重时,会导致内存泄漏,因此,保证过期的对象的及时回收具有重要意义。
8.在使用同步机制时,应尽量使用方法同步代替代码块同步。
9.尽量减少对变量的重复计算。
10.采用在需要的时候才开始创建的策略。
11.慎用异常,异常对性能不利。
12.不要在循环中使用Try/Catch语句,应把Try/Catch放在循环最外层。
13.尽量缓存经常使用的对象
14.HaspMap的遍历。
15.array(数组)和ArrayList的使用。
16.单线程应尽量使用 HashMap, ArrayList,除非必要,否则不推荐使用HashTable,Vector,她们使用了同步机制,而降低了性能。
17.尽量使用基本数据类型代替对象。
18.使用具体类比使用接口效率高,但结构弹性降低了,但现代IDE都可以解决这个问题。
19.考虑使用静态方法.
20.慎用synchronized,尽量减小synchronize的方法
二 java代码分析工具的使用
FindBugs:
Bad practice 坏的实践:常见代码错误,用于静态代码检查时进行缺陷模式匹配
Correctness 可能导致错误的代码,如空指针引用等
国际化相关问题:如错误的字符串转换
可能受到的恶意攻击,如访问权限修饰符的定义等
多线程的正确性:如多线程编程时常见的同步,线程调度问题。
运行时性能问题:如由变量定义,方法调用导致的代码低效问题。
三 Linux下常用的观察性能的各种工具,以及怎么分析系统的瓶颈
CPU使用情况的分析
IO监控、网络流量监控
四 JVM调优
各种垃圾回收算法及其优劣;
针对不同应用类型如何选择JVM参数
常用用具的使用(jps/jstat/jmap/jstack/jinfo/jhat)
调优案例分析(如何选择不同内存块的大小,如何选择不同的算法来提升性能、响应时间)
分析定位Java内存泄漏
五 Java应用中CPU占用率、使用情况分析,线程死锁等锁
系统性能瓶颈的分析定位
JStack的深度使用,各种Linux监控命令的配合使用(top,vmstat,iostat,sar)、分析
JProfiler的详细使用
六 J2EE项目性能优化注意事项
后端 同上
前端js html css 压缩优化
负载均衡部署
缓存策略
1.尽量使用final修饰符。
2.尽量重用对象。
3.尽量使用局部变量。
4.不要重复初始化变量。
5.不用new关键字创建对象的实例。
6.java编程过程中,进行数据库连接,I/O流操作,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销。
7.过分的创建对象会消耗系统的大量内存,严重时,会导致内存泄漏,因此,保证过期的对象的及时回收具有重要意义。
8.在使用同步机制时,应尽量使用方法同步代替代码块同步。
9.尽量减少对变量的重复计算。
10.采用在需要的时候才开始创建的策略。
11.慎用异常,异常对性能不利。
12.不要在循环中使用Try/Catch语句,应把Try/Catch放在循环最外层。
13.尽量缓存经常使用的对象
14.HaspMap的遍历。
15.array(数组)和ArrayList的使用。
16.单线程应尽量使用 HashMap, ArrayList,除非必要,否则不推荐使用HashTable,Vector,她们使用了同步机制,而降低了性能。
17.尽量使用基本数据类型代替对象。
18.使用具体类比使用接口效率高,但结构弹性降低了,但现代IDE都可以解决这个问题。
19.考虑使用静态方法.
20.慎用synchronized,尽量减小synchronize的方法
二 java代码分析工具的使用
FindBugs:
Bad practice 坏的实践:常见代码错误,用于静态代码检查时进行缺陷模式匹配
Correctness 可能导致错误的代码,如空指针引用等
国际化相关问题:如错误的字符串转换
可能受到的恶意攻击,如访问权限修饰符的定义等
多线程的正确性:如多线程编程时常见的同步,线程调度问题。
运行时性能问题:如由变量定义,方法调用导致的代码低效问题。
三 Linux下常用的观察性能的各种工具,以及怎么分析系统的瓶颈
CPU使用情况的分析
IO监控、网络流量监控
四 JVM调优
各种垃圾回收算法及其优劣;
针对不同应用类型如何选择JVM参数
常用用具的使用(jps/jstat/jmap/jstack/jinfo/jhat)
调优案例分析(如何选择不同内存块的大小,如何选择不同的算法来提升性能、响应时间)
分析定位Java内存泄漏
五 Java应用中CPU占用率、使用情况分析,线程死锁等锁
系统性能瓶颈的分析定位
JStack的深度使用,各种Linux监控命令的配合使用(top,vmstat,iostat,sar)、分析
JProfiler的详细使用
六 J2EE项目性能优化注意事项
后端 同上
前端js html css 压缩优化
负载均衡部署
缓存策略
- Java编码规范及代码性能优化
- JAVA编码规范之代码性能及惯例
- Android编码规范及性能优化整理
- java编码规范及优化总结
- java编码规范及优化总结
- Java基础学习总结(93)——Java编码规范之代码性能及惯例
- Android安卓编码规范及性能优化
- web前端开发编码规范及性能优化
- Android性能优化编码规范
- Android性能优化编码规范
- Android开发编码规范、性能优化、UI优化及开发建议
- Android开发规范--编码规范/性能优化/UI优化
- Java代码编码规范(1)
- Java项目代码编码规范
- 优化java代码性能
- java代码性能优化
- java代码性能优化
- 优化java代码性能
- 一些PS技巧,都是精华~
- jquery validate 在IE10 下出现 js错误(成员找不到)的修正
- 一些数论公式
- ubuntu下txt乱码解决方法
- blog
- Java编码规范及代码性能优化
- 【Nginx】Linux下Apache 转用 nginx(php5+mysql+phpmyadmin+FastCGI)
- hdu 4565 So Easy!
- Java定时任务的实现
- DSP笔记
- 关于 A^x = A^(x % Phi(C) + Phi(C)) (mod C) 的若干证明
- android开发SQLite加密问题解决方案(绝对管用)
- DNS原理及其解析过程【精彩剖析】
- 一名开发者从做技工的父亲那里学到的5堂课