JAVA--养成好的编程习惯

原文地址:http://user.qzone.qq.com/1159340782/2

略微牺牲一些性能,换来更好的可读性和可维护性是好的选择。以下不提倡和提倡的写法仅供参考。

代码中不提倡的写法


序号


不提倡的写法


原因


1


尽量避免随意使用静态变量


静态变量和类同步,类不卸载,对象将常驻内存,直到程序终止


2


尽量避免过多过常的创建java对象


花费时间去创建对象,回收对象也是一种开销,尽量复用对象,用基本数据类型或数组代替对象。


3


尽量避免使用finalize方法


导致GC负担更大,程序效率更差


4


尽量避免变量的重复计算


如遍历数组的长度,一次计算即可


5


尽量避免不必要的创建


程序逻辑控制对象的创建


6


尽量避免使用二维数组


二维数组占用空间比一维数组多得多,大概10倍


7


尽量避免使用split


Split由于支持正则表达式,效率低,消耗大量资源,建议使用apache下的StringUtils.split频繁split缓存结果


8


尽量避免非常大的内存分配


内存连续,浪费资源


9


慎用异常


创建异常开销大,好在try-catch开销不大


10


尽量减少IO操作


IO消耗系统资源,尽量使用缓存


11


尽量避免不需要的instanceof操作


always true


12


尽量避免不需要的造型操作


--


13


对于boolean避免不必要的等式


Flag == true

代码中提倡的写法


序号


提倡的写法


原因


1


尽量在合适的场合使用单例


减轻加载的负担,缩短加载的时间,提高加载的效率


2


尽量使用final修饰符


寻找内联所有final方法,性能提高50%


3


尽量使用局部变量


实例变量和静态变量等都在堆中建立,速度慢,局部变量放在栈中,速度快


4


处理好包装类型和基本类型使用场景


包装类型属于对象在堆中创建,基本类型在栈中创建,有对象方面需要处理适用包装类型,其他提倡基本类型


5


慎用synchronized尽量减小synchronized方法


实现同步系统开销大,容易死锁。尽量适用方法同步代替代码块同步


6


尽量使用StringBuffer和StringBuilder进行字符串的拼接


尽量初始化StringBuffer和StringBuilder的长度,字符数组动态添加字符串


7


尽量用基本数据类型代替对象


如String str = “hello” String str = new String(“hello”); 后者还创建了一个字符数组


8


单线程尽量使用HashMap ArrayList


HashTable Vector等使用了同步机制,降低了性能


9


尽量合理的使用HashMap


多使用HashMap的构造方法,初始化它的大小,扩容是一件很耗费性能的事情


10


尽量在finally块中释放资源


避免资源泄漏


11


尽量使用位运算取代a/b,a*b操作


/是一个代价很高的操作


12


尽量早释放无用的对象


Obj =null


13


合理使用arrayList和linkedList


一个是线性表(查询),一个是链表(添加和删除),


14


尽量使用System.arraycope复制数组


比循环复制数组要快得多


15


尽量缓存经常使用的对象


HashMap,WeekHashMap或者第三方的工具EhCache OsCache Memcached


16


大对象尽量用clone()不用new


new创建对象成本大


17


尽可能地使用java自身提供的api


不解释


18


使用快速度的jdbc驱动


数据库连接池


19


缓存DataSorce


为了再次的JNDI调用,可以系统中缓存要使用的DataSorce


20


让访问实例内变量的setget方法变成final


可变成inlined


21


charat代替startswith


--


22


如果只有一个字符的’’代替””


--


23


常量字符串,用String代替StringBuffer


减小运行开销提高性能


24


Stringtokenizer代替indexof substring


Stringtokenizer分析字符串更容易,效率也会高一些


25


使用三目运算代替if-return else


--

时间: 2025-01-01 11:55:39

JAVA--养成好的编程习惯的相关文章

要养成良好的编程习惯:就是要加上默认的父类无参的构造方法

Super()表示调用父类的构造方法. Super()也和this一样必须放在第一行. This()用于调用本类的构造方法. 如果没有定义构造方法,那么就会调用父类的无参构造方法,即super(). 要养成良好的编程习惯:就是要加上默认的父类无参的构造方法. 思考:可是如果我们没有定义无参的构造方法,而在程序中构造了有参的构造方法,那么如果方法中没有参数,那么系统还会调用有参的构造方法么?应该不会. 1 package TomText; 2 3 public class TomText_18 {

养成良好的编程习惯,一定要给参数加上修饰符。

经过我写博客的总结: delphi 设计修饰符的目的 就是这样,就是想让你告诉编译器,参数是否会再函数内发生改变,或输出out.所以请养成习惯,不要省略. 1.无修饰符: delphi会当成 unkown 来处理,这个时候 处理的很好,但是效率低(比如string等堆栈式存储的类型,他是会把指针复制一份入栈的,以防止你函数内部修改,因为一旦你函数内部修改了,为了避免影响原来调用此函数的函数内部的值跟着连带改变,所以他是把栈中的指针复制一份,若函数内部发生修改,就用这个新入栈的指针指向 新开辟的内

如何养成良好的 C++ 编程习惯(一)—— 内存管理

开篇导读 “养成良好的编程习惯”其实是相当综合的一个命题,可以从多个角度.维度和层次进行论述和评判.如代码的风格.效率和可读性:模块设计的灵活性.可扩展性和耦合度等等.要试图把所有方面都阐述清楚必须花很多的精力,而且也不一定能阐述得全面.因此,本系列文章以软件开发的基础问题为切入点,阐述程序设计和代码编写方面的细节问题,以点带面,旨在激发大家的思考与总结,希望能为大家带来实际的帮助.     虽然本系列文章定位为科普读物,但本座相信它们不但适合新手们学习借鉴,同时也能引发老鸟们的反思与共鸣.欢迎

阿里Java开发手册之编程规约

阿里Java开发手册之编程规约 对于程序员来说,编程规范可以养成良好的编程习惯,提高代码质量,降低沟通成本.就在2月9号,阿里出了一份Java开发手册(正式版),分为编程规约,异常日志,MySQL规约,工程规约,安全规约五个章节.这里我根据阿里的编程规约,重点记录(黑色加粗部分)自己还未做好的一些规范,同时方便查阅. ++阿里Java开发手册下载地址++ 编程规约 一.命名规约 [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name

java的编程习惯

1.注释 描述代码的文字 说明 不参与编译(给人看) 提高程序的可读性 文档习惯 // 单行注释 /* 多行注释 /* */ 不允许嵌套 */ /** 多行注释 配合JavaDoc工具使用 用来生成API文档 */ 2.缩进 换行和空格 表达程序的结构 可读性 每行一句代码 每进入一个代码块 {} , 缩进一次 同级代码列对齐 3.标识符命名 语法: 字母 数字 _ $ 组成,数字不能开头 大小写敏感 不能使用关键字和保留字(goto const) 习惯: 望文知义 大小写 类名 单词首字母大写

养成良好的C++编程习惯(准备持续更新)

? c++语言的灵活是建立在对编程者个人的编程素质的严格要求基础上的,好的C++编程习惯能避免很多问题. 没有好的编程习惯,极有可能编写一行代码,编译器能报十几个错误,而且就算编译通过了,将来在运行过程中也会有很多莫名奇妙的问题. ? 给字符串分配内存的时候,new char[]与 new char[size] 尽量用后者 下面这段代码在debug和releae模式下不出问题,但是生产环境下,有的时候不报错,有的时候报错报得能让你怀疑人生. 经验是:不要把c++想得太智能了,很多时候还是要编程者

增加 Java 有几个好习惯表现

以下是一些参考网络资源中的摘要Java编程在一些地方尽可能做. 1. 尝试使用单个例如在合适的场合 使用单例可以减轻负荷的负担,缩短加载时间.提高装载效率,但并不是所有的地方都适合一个案例.简单的说,单主要适用于以下三个方面: 第一.控制资源的使用,通过线程同步来控制资源的并发訪问: 第二.控制实例的产生,以达到节约资源的目的: 第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信. 2. 尽量避免任意使用静态变量 要知道.当某个对象被定义为stataic变量所引用

如何养成良好的工作习惯和编码习惯

时间过得真快,看到空间中各种毕业照,突然意识到离校已经一年了,回顾这一年 生活上:积蓄没攒下,还欠了一屁股债,一直在温饱线上挣扎 工作上:基础比较薄弱,一年了没太大长进,工作方式没有条理性和系统性 一年了,一直在埋头向前走,到头来去发现一直在原地打转,是该停下来想一想了... 作为一名开发人员,技术水平是立足之本,如何提高技术水平,并体现在工作中成为了我的第一阶段目标 以下是一些想法,供自己参考 暴露的问题(前辈) (1)工作方式不成熟 (2)技术进步不大,基础比较薄弱 (3)自我认识不准确 自

养成一个SQL好习惯带来一笔大财富

我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?那么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助. 要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果

c语言之良好的编程习惯(四)

1.在编写程序时,尽量减少内存的开销. 2.注释的内容要清楚明了,含义准确,防止二义性. 3.注释不要用缩写. 4.注释应与描述的代码相近,对代码的注释应放在代码的上方或右方. 5.编写程序使用缩进可以减少很多不必要的语法错误,同时也非常有利于调试. 6.在编辑实现一定功能的C语言程序时,首先要有一个清晰的思路,例如需要实现什么功能,关键是什么.语句流怎样控制.虽然不一定写出来,但至少心里有数. 7.养成边写边调试的习惯. 8.编译之前仔细检查是否有人为造成的编写错误,以免浪费时间. 9.在对运