`
wbj0110
  • 浏览: 1603030 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

java编程中必备的好习惯

阅读更多

1、注释尽可能全面

对于方法的注释应该包含详细的入参和结果说明,有异常抛出的情况也要详细叙述;类的注释应该包含类的功能说明、作者和修改者。

Java编程中写出好代码的建议

2、多次使用的相同变量最好归纳成常量

多处使用的相同值的变量应该尽量归纳为一个常量,方便日后的维护。

3、尽量少的在循环中执行方法调用

尽量在循环中少做一些可避免的方法调用,这样可以节省方法栈的创建。例如:

for(int i=0;i<list.size();i++){

System.out.println(i); 

可以修改为:

for(int i=0,size=list.size();i<size;i++){

System.out.println(i); 

4、常量的定义可以放到接口中

在Java中,接口里只允许存在常量,因此把常量放到接口中声明就可以省去public static final这几个关键词。

5、ArrayList和LinkedList的选择

这 个问题比较常见。通常程序员最好能够对list的使用场景做出评估,然后根据特性作出选择。ArrayList底层是使用数组实现的,因此随机读取数据会 比LinkedList快很多,而LinkedList是使用链表实现的,新增和删除数据的速度比ArrayList快不少。

6、String,StringBuffer和StringBuilder

这个问题也比较常见。在进行字符串拼接处理的时候,String通常会产生多个对象,而且将多个值缓存到常量池中。例如:

String a=”a”;

String b=”b”;

a=a+b; 

这种情况下jvm会产生”a”,”b”,”ab”三个对象。而且字符串拼接的性能也很低。因此通常需要做字符串处理的时候尽量采用StringBuffer和StringBuilder来。

7、包装类和基本类型的选择

在代码中,如果可以使用基本数据类型来做局部变量类型的话尽量使用基本数据类型,因为基本类型的变量是存放在栈中的,包装类的变量是在堆中,栈的操作速度比堆快很多。

8、尽早的将不再使用的变量引用赋给null

这样做可以帮助jvm更快的进行内存回收。当然很多人其实对这种做法并不感冒。

9、在finally块中对资源进行释放

典型的场景是使用io流的时候,不论是否出现异常最后都应该在finally中对流进行关闭。

10、在HashMap中使用一个Object作为key时要注意如何区分Object是否相同

在 jdk的HashMap实现中,判断两个Object类型的key是否相同的标准是hashcode是否相同和equals方法的返回值。如果业务上需要 对两个数据相同的内存对象当作不同的key存储到hashmap中就要对hashcode和equals方法进行覆盖。

11、避免在方法中出现多个return语句(退出点)

在你的方法中,确保只有一个 退出点。不要在一个方法中使用多于一个return语句。

如,下面的代码是 不推荐的,因为它有多个退出点(return语句)。

private boolean isEligible(int age){ 

if(age > 18){ 

return true; 

}else{ 

return false; 

}

上面的代码可以这么写(当然,下面的代码还可以改进,后面再说)。

private boolean isEligible(int age){ 

boolean result; 

if(age > 18){ 

    result = true; 

}else{ 

    result = false; 

return result; 

}

12、简化if-else方法

我们写了一些只要一个参数的工具方法,检查一些条件并根据条件返回一个值。如,在上面见到的 isEligible方法。

  1. private boolean isEligible(int age){ 
  2.   boolean result; 
  3.   if(age > 18){ 
  4.     result = true; 
  5.   }else{ 
  6.     result = false; 
  7.   } 
  8.   return result; 
  9. }

可以只使用一个return语句来重写此方法。 

  1. private boolean isEligible(int age){ 
  2.   return age > 18; 
  3. }

13、不要为Boolean,Integer或String创建新的实例

避免创建新的Boolean,Integer,String等实例。使用Boolean.valueOf(true)代替new Boolean(true)。两种写法效果差不多但却可以改善性能。

14、在代码块周围使用大括号

永远不要忘记在块类型语句(如:if,for,while)周围使用大括号。这可以减少代码歧义并且避免在你修改代码块的时候产生新的bug。

不推荐 

  1. if(age > 18) 
  2.   return true; 
  3. else
  4.   return false;

推荐 

  1. if(age > 18){ 
  2.   return true; 
  3. }else{ 
  4.   return false; 
  5. }

15、把方法的参数声明为final类型

总是在所有兼容的地方把把方法的参数声明为final。这样做的话,当你无意中修改了参数的值,编译时会得到警告,并且编译生成的字节码也会得到优化。

推荐

  1. private boolean isEligible(final int age){ ... }

16、用大写命名public static final类型成员变量

总是使用大写命名用public static final类型变量。这样可以让你很容易区分常量和本地变量。

不推荐 

  1. public static final String testAccountNo = "12345678";

推荐

  1. public static final String TEST_ACCOUNT_NO = "12345678";

17、把多个if语句合并成一个

下面的代码 

  1. if(age > 18){ 
  2.   if( voted == false){ 
  3.     // eligible to vote. 
  4.   } 
  5. }

可以使用一个if语句改写为:

  1. if(age > 18 && !voted){ 
  2.   // eligible to vote 
  3. }

18、别忘了给switch添加default语句:

总是给switch添加一个default语句。

19、避免重复使用同样的字符串,创建一个常量吧:

如果你需要在多个地方使用同一个字符串,那就创建一个字符串常量来使用吧。

下面的代码: 

  1. private void someMethod(){ 
  2.   logger.log("My Application" + e); 
  3.   .... 
  4.   .... 
  5.   logger.log("My Application" + f); 
  6. }

可以创建一个常量代替字符串"My Application":

  1. public static final String MY_APP = "My Application"; 
  2. private void someMethod(){ 
  3.   logger.log(MY_APP + e); 
  4.   .... 
  5.   .... 
  6.   logger.log(MY_APP + f); 
  7. }
分享到:
评论
1 楼 xjzs 2014-02-08  

相关推荐

    java程序设计课件

    Java程序设计是计算机科学中的一个重要领域,主要涉及使用Java编程语言进行软件开发。Java是一种广泛应用于服务器端、桌面应用、移动应用(尤其是Android平台)的高级编程语言。天津大学计算机系提供的这门java程序...

    java编程50题 学习java必备

    Java编程是IT行业中不可或缺...总的来说,"java编程50题 学习java必备"是一份极好的学习材料,无论你是初学者还是有一定基础的开发者,都能从中受益匪浅。通过系统地完成这些题目,你的Java编程技能必将得到显著提升。

    JAVA编程百例

    Java编程语言是面向对象的、跨平台的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)于1995年发布。它以其“一次编写,到处运行”的特性赢得了广泛的应用,成为软件开发的重要工具。本资源包“JAVA...

    java电子书wod文档及小程序

    《Java电子书与小程序》是针对Java编程学习者的一份宝贵资源,包含了杨旭超老师的程序设计教程和相应的源代码。这份资料集旨在通过实践性的教学方法,帮助读者深入理解和掌握Java编程语言。 首先,我们要关注的是...

    Java学习必备/Java初学者的一剂良药

    Java编程是IT行业中不可或缺的一部分,尤其对于初学者来说,它是打开软件开发世界的一把钥匙。"Java学习必备/Java初学者的一剂良药"这个标题暗示了本项目旨在为Java新手提供一套全面的学习资源,帮助他们更好地理解...

    Java简单实例初学者的必备

    Java编程语言以其强大的跨平台能力、丰富的类库和高效的应用性能,在IT行业中占据了重要的地位,尤其对于初学者来说,它是入门计算机编程的理想选择。"Java简单实例初学者的必备"这个压缩包文件提供了180个精心设计...

    Java实现的记事本程序,Java入门学习案例,源码.rar

    这个"Java实现的记事本程序"是为初学者设计的,旨在帮助他们更好地理解和掌握Java编程基础。通过分析和实践这个项目,学习者可以了解如何在Java中构建一个基本的应用程序,增强对GUI(图形用户界面)编程的理解。 1...

    《Java 并发编程实战》.zip

    在Java编程中,并发是指程序中存在多个执行线程,这些线程可以同时进行工作,以提高系统的整体处理能力。Java平台提供了丰富的并发工具和API,如线程(Thread)、守护线程(Daemon Thread)、线程池...

    Java开发程面试必备

    以下是一些核心的Java知识点,这些都是面试官经常关注的要点,同时也是Java开发人员必备的技能。 1. **基础语法**:熟悉Java的基础语法是入门的第一步,包括变量、数据类型、运算符、控制结构(如if语句、switch...

    200个Java初学者必看的小程序.rar

    Java编程语言是软件开发领域中最受欢迎的编程语言之一,尤其对于初学者来说,它提供了丰富的学习资源和广泛的应用场景。这个名为"200个Java初学者必看的小程序.rar"的压缩包文件,显然是一个专为Java新手设计的学习...

    Java程序设计教程(第六版)源程序

    这本书深入浅出地介绍了Java编程语言的核心概念和技术,是初学者和进阶者必备的参考书。源程序的提供使得读者能够更好地理解书中所讲解的实例,通过实践来深化理论知识。 在本压缩包文件“Book_Resources”中,包含...

    Java程序员必会的程序

    下面将详细解析“Java程序员必会的程序”中的关键知识点,帮助初级程序员构建坚实的基础。 #### 1. 基础语法与控制结构 掌握Java的基础语法是学习任何高级概念的前提。这包括变量声明、数据类型、运算符、流程控制...

    Java程序设计教程第五版教材(美国)上的例题

    "Java程序设计教程第五版教材(美国)"是一本面向初学者的指南,旨在帮助读者深入理解Java编程语言,并通过实际例题来巩固理论知识。下面,我们将根据标题和描述中的知识点进行详细讲解。 1. **Java语法**:Java语法...

    阿里45K高级Java岗,必备技能清单来了!.docx

    例如,深入理解Java高级特性,如反射、注解、并发编程等,能帮助你更好地优化代码和提高程序性能。 其次,互联网行业没有舒适区。面对不断涌现的新技术,如大数据、云计算、人工智能等,Java工程师需要时刻保持敏锐...

    Head First java 第二版中文

    这本书旨在让学习者在轻松愉快的氛围中掌握Java编程,为后续的软件开发打下坚实的基础。 在书中,首先会介绍Java语言的基本语法,包括变量、数据类型、运算符以及流程控制语句(如if-else、switch、for、while等)...

    java 中文api

    在Java编程中,API(Application Programming Interface)是Java语言提供的一系列预先定义好的类和方法,它们为开发者提供了基本功能,使得开发者能够构建复杂的软件系统。Java API涵盖了核心类库、集合框架、I/O流...

    大乐透java程序,能产生随机大乐透号码

    本项目涉及的是一个基于Java实现的大乐透随机出号程序,这为我们提供了一个有趣的实例来探讨Java编程和随机数生成技术。 首先,"大乐透"是一种流行的彩票玩法,通常需要选择一定数量的主号码和副号码。Java程序可以...

    Java菜鸟进阶宝典

    《JAVA编码规范》.chm是Java编程的规范指导,遵循良好的编码习惯可以提高代码可读性和团队协作效率。 通过这些资料,Java菜鸟可以从基础到进阶,全面学习Java语言及其相关技术,逐步成长为合格的Java开发者。每一份...

    Java必备开发工具Sublimetext.zip

    在这个"Java必备开发工具Sublimetext.zip"压缩包中,你将找到安装和使用Sublime Text进行Java开发所需的基本资源。 首先,Sublime Text的核心特性包括多选、多列编辑和全屏无干扰模式,这些都极大地提高了代码编写...

    Introduce to Java Programming 8th

    通过运行和分析这些程序,读者可以更好地领会Java编程的实际操作,提高编程能力。而"全部习题答案"则覆盖了所有课后习题,包括偶数和奇数编号的习题,这不仅方便了自我检查,也能够帮助读者解决在学习过程中遇到的...

Global site tag (gtag.js) - Google Analytics