`
bupter520
  • 浏览: 57105 次
  • 性别: Icon_minigender_2
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论
阅读更多

Java经过十几年的发展,已经成为了企业级开发中炙手可热的技术。以至于越来越多的开发大军投入到Java EE的产品研发之中。虽然绝大多人人认为java学习掌握相比于C++来说简单很多,但殊不知这种简单的背后使得我们忽略了多少需要注意的细节,这对于很多应用来说也许会带来致命的缺陷,因为不好的命名规范,不高效的编程方式。本文力求讲解java应用中常忽略的一些问题,给出建议性处理方式,以期更好地应用java开发程序,不足之处,希不吝指教!

 

关于命名:
  * 尽量使用完整的英文描述符
  * 采用适用于相关领域的术语
  * 采用大小写混合使名字可读
  * 缩写要明智地使用,且在整个工程中统一 ,但尽量少用
  * 避免使用长的名字,个人觉得小于 20 个字母为宜
  * 避免使用下划线,但静态常量除外
      * 常量的名字应该都使用大写字母,并且指出该常量完整含义
      * 包(Package) 采用完整的英文描述符,应该都是由小写字母组成
      * 类(Class) 采用完整的英文描述符,所有单词的第一个字母大写
      * 接口(Interface)与类相同,习惯上使用形容词词缀able,ible,比如 Runnable, Comparable
(软件开发讲究团队合作,采用统一且合适的命名规范对于提高团队效率,提升代码的可读性和易维护性至关重要;在命名的时候我们一定要牢记两条原则:统一性和见名知意)

 

 

关于内存:
在使用java编程的时候,我们接触到的内存布局主要包括4种,即
    *stack segment,基本数据类型以及对象引用
    *heap  segment,通过new关键字动态分配的对象
    *code  segment,程序代码
    *data  segment,一些常量,静态变量或对象等
  程序中的局部变量存放在stack segment,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源,而heap segment中的资源需要java垃圾回收机制来处理;

(另外实际上用到的可能还有寄存器,但这是不受程序员控制的,由编译环境优化控制,往往循环变量会被优化成寄存器类型,因为就速度而言寄存器>堆栈>堆>其他)

 

 

关于编码:   
  *在处理 String 的时候要尽量使用 StringBuffer 类,提高效率,减少内存耗用,具体请参照我的另一篇博文;
      *尽量使用接口而不是一个具体的类,这样即使更改实现,外部类也不必做相应更改,体现了多态的意义;
      *将类的属性按种类分块,将方法的实现按功能分块,适度使用对齐;
      *尽可能不使用import java.util.*;的形式引入类,而是用到哪个类引入哪个,减少最后生成代码大小;
      *尽量减少同名类,用包名体现类的层次,同时也便于框架管理,如:
             com.metarnet.bean;
             com.metarnet.service;
      *用接口代替抽象类,不要同时使用overload和override,overload在编译时起作用,override在运行时起作用;
      *函数调用时,通过形参传过来的对象必须先进行类型安全检验,避免使用异常; 
      *使用合适的设计模式,如单例模式,工厂模式;
      *在循环的判断中不要直接使用方法调用的返回值,而要将方法的返回值赋给变量,然后再使用这个变量,

              避免重复运算;
      *对于一组代码完成一个功能的代码,好把他们封装,放在一个新的方法里面,如果只是类内部使用,

              声明为private;
      *异常Exception的捕捉是会增加额外开销的。所以尽量避免过多的异常捕捉。越是经常调用的代码,

              越是要较少或者避免try…    

       catch..finally,如在for外捕获异常效率比每个循环开销小;
      *用链式异常保留原始异常的信息e.printStackTrace的信息通过继承保留,便于跟踪程序调用层次;
      *对于try块中如果可能抛出多个异常,后面要接多个catch块来捕获异常,并且注意顺序由细到粗;
      *首善之举是重构(refactor)而不是复制(copy);
      *避免使用NEW关键字来创建String对象;
      *避免在同一行声明不同类型的多个变量,避免混乱;
      *在每一行里写一条语句,清晰易读;
      *避免把方法本地变量和参数定义成和类变量相同的名字,这样容易引起混扰,建议把任何的变量字都定义成唯一的。
(编码很多时候是件很具有艺术性的事情,如果我们保持良好的编程手法,不仅获得“艺术上的享受”,同时也赢得了程序的高效率及高可靠性。当你的代码被拿出来的时候,更像是一件艺术品的面世展览)

  

 

分享到:
评论

相关推荐

    java那些事儿chm

    在这个压缩包中,包含的文件名为“java那些事儿.chm”。 Java,作为世界上最流行的编程语言之一,拥有广泛的应用领域,从企业级应用到移动开发,无处不在。这个CHM文档很可能是对Java基础知识、进阶概念、实战技巧...

    java那些事儿

    Java那些事儿,这是一个专为Java初学者准备的学习资源,涵盖了丰富的知识内容,旨在帮助新接触Java编程的人士快速上手并深入理解这门强大的编程语言。在这个压缩包中,我们有两份重要的文件:《Java编程那些事儿》的...

    java那些事儿chm版本

    Java编程那些事儿系列文章(全集) 整理好的chm 作者:陈跃峰 来源:http://blog.csdn.net/mailbomb

    java编程那些事儿-陈跃峰71-102

    《Java编程那些事儿》是陈跃峰先生的一本关于Java编程技术的著作,该书深入浅出地介绍了Java编程中的重要概念和实践技巧。这里我们主要聚焦于压缩包中的部分内容,涉及Java集合框架、时间日期处理、文件操作、多线程...

    Java那些事儿之(一)读取property配置文件

    在Java编程中,管理应用程序的配置参数是一项至关重要的任务。`properties`文件是Java中用于存储配置信息的标准格式,它以键值对的形式保存数据,易于读写且跨平台兼容。本文将深入探讨如何在Java中读取和操作`...

    Java编程那些事儿

    "Java编程那些事儿"无疑是对这个强大语言的深入探讨,旨在帮助开发人员提升技能,拓宽视野。这份资料可能是由一系列章节或主题组成的文档,比如基础语法、面向对象编程、异常处理、集合框架、多线程、IO流、网络编程...

    JAVA编程那些事儿

    JAVA编程那些事儿 作者陈跃峰在序言中提到,从大学毕业到现在已经六年了,这六年的时间里,他从事过开发和培训工作,遇到了各种各样的学生,在学习编程时遇到了许多的问题和迷茫。因此,他希望通过编写这本书,把...

    Java编程那些事儿[完整版]PDF(加密版)

    有CSDN的MVB 陈跃峰老师摘写,适合JAVA初学者的一本书! 由本人收集整理成完成版转换成PDF格式上传CSDN! 作者:陈跃峰老师 收集整理:云低夕落人归

    java程序员的那些事儿

    "java程序员的那些事儿"这个主题涵盖了许多方面,包括学习路径、技术栈、开发实践、职业发展等。让我们深入探讨一下Java程序员在日常工作中的关键知识点。 首先,学习Java编程语言是基础。Java以其“一次编写,到处...

    java编程那些事儿

    ### Java编程那些事儿 #### 程序设计概述与核心要素 **程序设计**,作为一项专业技能,涉及将现实世界的问题转化为计算机可执行的指令序列。它不仅仅是一门技术,更是一种思维方式的体现。本章节将从三个方面展开...

    Java编程那些事儿系列文章.pdf(全)

    《Java编程那些事儿》系列文章,由IT教育专家陈跃峰撰写,旨在通俗易懂地讲解Java编程的基础知识与实践技巧,特别强调了程序设计的基本概念及其对初学者的重要性。以下是从该系列文章中提炼出的关键知识点: ### ...

    Java 编程那些事儿系列文章.pdf

    ### Java编程那些事儿系列文章知识点概述 #### 一、程序设计是什么? 程序设计,通常被称为编程,是指将解决问题的方法和步骤转化为计算机可以理解和执行的指令的过程。它涉及到三个方面: 1. **做什么**:即确定...

    Java编程那些事儿_java_

    本文将围绕“Java编程那些事儿”,探讨JVM的工作原理,诊断工具的使用以及性能优化策略。 1. JVM原理: JVM是一种虚拟机,它为Java程序提供了跨平台的执行环境。它负责解析.class文件,执行字节码,并管理内存区域...

Global site tag (gtag.js) - Google Analytics