`

如何编写高效率Java

    博客分类:
  • java
阅读更多

如何编写高效率Java

规则1 用时间频度来确定异常情况
异常Exception的捕捉是会增加额外开销的。所以尽量避免过多的异常捕捉。越是经常调用的代码,越是要较少或者避免try…catch..finally。
细节1、左边的代码效率比右边的高(在for外捕获异常效率比每个循环开销小)

try{
for(){}
}
catch(Exception e){
}
for(){
try{
}
catch(Exception e){
}
}
细节2、finally中的return或者抛出的异常会产生complete abrupt结束。
try{
throw new Exception("Hello");
}
finally{
return 0; //此举使得Hello这个异常不会被上层看到。因为finally这里把异常抛弃,而返回0了。
}

 

规则2 用不需查异常RuntimeException及其子类来强化方法使用的约定

比如不希望被使用的方法,但不得不从父类集成,可以使用该方式。

规则3Error的子类表示系统级的异常和程序不用处理的异常

这样程序中不用显式捕获了。

规则4 用不从RuntimeException集成的子类来表示需查异常

规则5 反之,用从RuntimeException集成的子类来表示不需查异常

规则6 用链式异常保留原始异常的信息

e.printStackTrace的信息通过继承保留,便于跟踪程序调用层次。

 

代码风格部分:

规则7 将类的属性按种类分块

规则8 将方法的实现代码按功能分类

规则9 适度的使用对齐

规则10 控制代码的长度

规则11 尽可能不import

因为容易使得读代码的人难以定位

规则12 尽量减少同名的类

规则13 用包名体现类的层次

规则15StringBuffer/StringBuilder(from 5.0)代替迭代使用的String

规则16 手工清除短期对象的引用

比如在循环中使用的临时对象,如果不用了,在每个循环后面赋值null

while(true){

       Vector x = new Vector();

       ….

       x = null;

}

规则17 长期引用容易引起内存泄漏

ObjectOutputStream会保留所有已序列化的对象的引用,以免被重复序列化,所以每次new的对象都不会被垃圾收集,这时候需要手动处理:

Object xx = new XXX();

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream());

out.write(xx);

out.flush();

out.reset();//此处释放引用从而不会泄漏。

 

规则18 用接口代替抽象类

继承用于继承父类的方法。组合用于数据的组合。

规则19 不要同时使用重载(overload)和覆盖(override)

overload在编译时起作用,override在运行时起作用。

规则20 正确使用继承表示分类关系

规则21 用组合来表示包含关系

组合(组成和聚合composition and aggregationUML都用聚合来表示。

规则22 避免方法的副作用

设计不可变类,动作只修改状态不返回状态。查询反之。

规则23 首善之举是重构

不是copy

规则24 选择合适的体系结构

规则25 通过Iterator,使用forwhile循环访问集合元素

规则26 使用不可变类作为Set或者Mapkey

规则27 不要与集合的实现南辕北辙

规则28 谨慎的使用集合的clone方法

(默认都是浅层复制,深层复制只能自己实现或者是不可变类)

规则29 掌握集合的惯用法

1、排序,使用Collections.sort()或者有序的集合。

2Collections.nCopies生成一个n个元素的不可变集合。帮助初始化

规则30 建议定义完整的性能调整过程

规则31 建议改善java运行环境

规则32 建议减少创建对象

规则33 建议减少循环体的代码

函数的调用,数组的操作,不要使用函数调用作为循环结束的判断标志

规则34 减少IO操作时间

规则35 正确使用JDBC编程接口

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    编写高质量代码 改善Java程序的151个建议 PDF高清完整版

    《编写高质量代码 改善Java程序的151个建议》是一本专注于提升Java编程质量的专业书籍。书中详细列举了151条实用的建议,旨在帮助开发者编写出更高效、可读性更强且易于维护的Java代码。以下是对这些建议的详细解读...

    高效率文件复制java版

    高效率文件复制java版 本资源主要讲解了高效率文件复制的java实现方法,包含了两种不同的实现方式,分别使用java io流和FileChannel来实现文件复制操作。 知识点1:Java IO流文件复制 在第一个实现方法中,我们...

    敏捷开发中编写高质量Java代码

    在敏捷开发过程中,确保编写高质量的Java代码是至关重要的,因为这不仅有助于提升软件的可靠性,还能增强代码的可维护性和团队协作效率。本篇文章主要介绍了五个步骤,以帮助开发者在敏捷开发环境中实现这一目标。 ...

    java语言编写的bbs

    Java语言编写的BBS系统是基于网络的讨论论坛软件,它允许用户进行在线交流、发布信息和分享观点。在这个系统中,"StuBBS"可能是项目的名字或者主要模块,暗示这是一个面向学生或教育领域的论坛平台。下面我们将深入...

    java编写的小程序

    Java的设计理念是简单性、健壮性、安全性、可移植性和高性能。在这个“java编写的小程序”中,我们可以推测作者使用了Java的基础语法和类库来构建一个3D模拟程序。 【MyEclipse集成开发环境】 MyEclipse是基于...

    java编写的图书管理系统,提供源码

    本文将深入探讨一个用Java语言编写的图书管理系统,它利用GUI图形化界面为用户提供友好的操作体验。这个系统不仅实现了基础的图书管理功能,还允许开发者根据自身需求进行扩展和定制,具有较高的可扩展性和灵活性。 ...

    JAVA编写的记事本程序

    【标题】:“JAVA编写的记事本程序” 在IT领域,Java是一种广泛应用的高级编程语言,以其跨平台、面向对象的特性而闻名。本项目是一个使用Java开发的记事本程序,它允许用户进行基本的文字编辑操作,如新建、打开、...

    java编写QQ聊天工具

    Java编写QQ聊天工具是一款基于Java技术实现的即时通讯软件,主要功能是实现用户之间的私聊。对于初学者来说,这是一个很好的学习项目,因为它涵盖了Java编程基础、网络通信、多线程以及用户界面设计等多个核心知识点...

    java编写的管理系统网站

    【标题】:“java编写的管理系统网站”揭示了这个项目的核心技术是使用Java语言来构建一个管理系统的Web应用。Java作为一种跨平台的编程语言,因其稳定、安全和高效的特点,常被用于开发大型的企业级应用,尤其是...

    Java代码编写规范

    【Java代码编写规范】 编码规范在IT行业中,尤其是在Java编程领域,扮演着至关重要的角色。首先,一个软件的生命周期中,大部分成本在于维护阶段,因此,为了降低维护难度和提高效率,良好的编码规范必不可少。其次...

    运用JAVA编写的 在线考试系统

    1. **JAVA编程基础**:JAVA是一种面向对象的高级编程语言,以其“一次编写,到处运行”的特性受到广泛青睐。在构建在线考试系统时,开发者会运用JAVA的核心语法、类库和API,包括集合框架、多线程、异常处理、IO流等...

    JAVA编写的打字游戏

    在本案例中,我们讨论的是一款使用Java编写的打字游戏。打字游戏是一种能够帮助用户提高打字速度和准确性的小型应用程序,通过游戏化的体验使学习过程更加有趣。 首先,Java中的Swing或JavaFX库可以用于构建游戏的...

    Java 编写的计算机器程序

    总结起来,"Java 编写的计算机器程序"是一个涵盖了Java语言基础、面向对象设计、异常处理、GUI编程、测试和版本控制等多个方面的综合项目,对于学习和实践Java编程有着很高的价值。通过分析和运行这个程序,开发者...

    EditPlus java编写工具

    相较于许多传统的文本编辑器,EditPlus提供了许多专为程序员设计的特性,使其在编写Java代码时更为高效。 首先,EditPlus具有代码高亮显示的功能,它能够根据不同的编程语言自动识别并以不同的颜色和样式突出显示...

    java编写socket服务端和客户端给予cmpp3.0

    CMPP(China Mobile Short Message Peer-to-Peer)是中国移动制定的一种短消息传输协议,其中 CMPP3.0 是其最新的版本,具有高效率、高可靠性的特点。以下将详细讲解这个主题的相关知识点。 1. **Java Socket编程...

    SciTe编写Java代码

    3. **语法检查**:通过集成Java编译器,SciTe可以在编写过程中实时检查代码的语法错误,帮助开发者及时发现并修复问题。 4. **括号匹配**:SciTe支持括号匹配,当用户在代码中输入一个括号时,另一个括号会被自动...

    java编写的图书管理系统

    《Java编写的图书管理系统》...总的来说,这个Java编写的图书管理系统展示了Java在实际项目中的应用,涉及了数据库设计、JDBC、ORM、MVC架构、前端开发等多个技术领域,对于学习和提升Java开发技能具有很高的实践价值。

    高级JAVA源代码

    同时,NIO(非阻塞I/O)是Java 1.4引入的新特性,它提高了读写操作的效率,特别是在高并发场景下。 Java反射机制允许我们在运行时动态地获取类的信息并操作对象。这对于实现插件化、动态加载和元编程非常有用。而...

    JRE--Java程序,Java语言编写的软件运行环境

    JRE为Java应用程序提供了一个运行平台,使得开发者编写出的Java程序可以在任何安装了JRE的设备上运行,实现“一次编写,到处运行”的理念。在Java的世界里,JRE扮演着至关重要的角色。 Java虚拟机(Java Virtual ...

    java编写的简单的单位换算工具

    搜索算法可能是简单的键值对查找,效率较高。 5. **异常处理** 在处理用户输入或执行转换时,可能会遇到无效输入或无法转换的单位。Java的异常处理机制可以帮助程序优雅地处理这些问题,例如使用try-catch语句块。...

Global site tag (gtag.js) - Google Analytics