`

java性能编码规范

    博客分类:
  • Java
阅读更多

转自:http://jlins.iteye.com/blog/1561328

1、 对于常用工具类的方法,需要关注同步问题
2、 对于不能确认被其它代码如何调用的方法或者可能被其它代码频繁调用的方法,需要关注同步问题
3、 对于常量字符串,不要通过new方式来创建
4、 对于常量字符串之间的拼接,请使用“+”;对于字符串变量(不能在编译期间确定其具体值的字符串对象)之间的拼接,请使用StringBuffer;在JDK1.5或更新的版本中,若字符串拼接发生在单线程环境,可以使用StringBuilder
5、 在使用StringBuffer进行字符串操作时,请尽量设定初始容量大小;也尽量避免通过String/CharSequence对象来构建StringBuffer对象
6、 当查找字符串时,如果不需要支持正则表达式请使用indexOf(…)实现查找;当需要支持正则表达式时,如果需要频繁的进行查找匹配,请直接使用正则表达式工具类实现查找
7、 对于简单的字符串分割,请尽量使用自己定义的公用方法或StringTokenizer
8、 当需要对报文等文本字符串进行分析处理时,请加强检视,注意算法实现的优化
9、 在实现业务处理流程的过程中,需要考虑临时对象引起的性能问题,精简业务处理流程,减少不必要的中间环节
10、 对象的创建应尽量按需创建,而不是提前创建
11、 对象的创建应尽量在for、while等循环外面创建,在循环里面进行重用
12、对于高频度使用的对象,需要进行单独优化处理给以重用
13、在代码开发中,需要根据应用场景合理选择集合框架中的集合类,应用场景可按单线程和多线程来划分,也可按频繁插入、随机提取等具体操作场景来划分
14、对于热点代码,可以采用特定的集合类来提供系统性能,特定集合类可以是自己开发,也可以直接采用Trove这样的第三方开源类库
15、当需要在方法之间传递多个属性值时,从性能角度考虑,应优先采用结构体,而非ArrayList或Vector等集合类
16、进行IO读写操作时,必须使用缓冲机制
17、从性能角度考虑,应尽量优先使用字节IO进行读写,而避免用字符IO进行读写
18、对于数组、集合的拷贝、查找、排序等操作,如果是一般应用,可以优先采用java.util.Arrays和java.util.Collections中提供的工具方法;但是对于热点代码,最好是参考java API中的方法实现,自己开发特定的排序等方法,以减少临时对象的创建。
19、对于数组的拷贝,请使用System.arraycopy(…)方法
20、如果往框架类或者系统类对象中添加了某个对象,那么当该对象不再使用时,必须及时清除
21、当使用自己定义的类装载器去装载类时,在被装载的类不再使用后,需要保证该类装载器可以被垃圾回收
22、尽量不要将一些大的对象(对象本身比较大或其引用的对象比较多)定义成静态的
23、如果在一个对象中创建了一个线程,当对象不再使用时,必须关闭该线程
24、在JFrame、JDialog等窗口对象中,尽量处理窗口关闭事件并释放资源
25、在IO操作中,必须定义finally代码段,并在该代码段中执行IO关闭操作
 

 

分享到:
评论

相关推荐

    JAVA编码规范试题

    一套JAVA编码规范试题,某些公司的必备

    Java程序性能优化技巧

    天极传媒公司培训文档,PPT格式共30页左右,从编码习惯,规范到架构设计上对Java应用性能优化做了详细明确的讲解,初学者看了是受益匪浅的

    华为java编程规范

    华为java编程规范,包括排版、注释、命名、编码、性能与可靠性,以及Eclipse模板

    Java虚拟机规范中文版

    因此通过虚拟机规范去分析程序的执行语义问题(虚拟机会做什么)时,但分析程序的执行行为问题(虚拟机是怎样做的、性能如何)则意义不大,如需对具体虚拟机实现进行调优、性能分析等,我推荐在本书基础上继续阅读...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    阿里代码规范题目+答案50道题,不乱码不套路,便宜实惠。 多选 1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚...

    超全的Java岗面试题库合集.zip

    阿里巴巴编码规范 基础技能认证 考题分析(考题 答案) 2020年JAVA常见面试题库 整理的多家公司常见面试题库350道 三、2020年Java各知识点综合面试题 并发编程 多线程 集合框架 乐观锁与悲观锁 设计模式 数据库 性能...

    阿里巴巴java开发规范.rar

    比如:数据库的表结构和索引设计缺陷可能带 来软件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客 攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、...

    java源码包---java 源码 大量 实例

    通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...

    JAVA上百实例源码以及开源项目

    通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...

    JAVA上百实例源码以及开源项目源代码

    通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...

    Java开发编程规范文档1.7.0.rar

    Java开发编程规范文档1.7.0.rar 经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册, 因为不仅是编程知识点,其它维度的知识点也会影响到软件的...

    java开源包4

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包101

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包11

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包6

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    项目管理系统开发 Java 后端开发规范教程.docx

    6 性能规范 14 7 安全规范 15 8 接口 url 命名规则如下 1 前言 适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以 一种普遍认可的方式一起做事,降低故障率,提升协作效率。 ...

    java开源包9

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包5

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包8

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包10

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

Global site tag (gtag.js) - Google Analytics