`
min12605
  • 浏览: 55024 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

高效实用Java

阅读更多
每一种语言都有其自身的特点,只有掌握了其自身的特点,才能用它编写出高效的程序。下面就我个人实践所知谈谈javaSE方面的性能问题,
javaEE方面的性能暂不讨论,要是时间可以再写一javaEE方面的性能问题的帖子。

1, 尽量不要使用+号来连接字符串。
2, 对小数据int的Integer封装,尽量的使用Integer.valueOf()创建,而不要使用new来创建。因为Integer类缓存了从-128到256个 状态的Integer。
3, 对Boolean类,要用valueOf()或使用Boolean.TRUE或Boolean.FALSE来创建对象。我个人觉得对Boolean类用private构造函数,可能就会避免不好的使用Boolean类了。
4, 在设计类时应尽可能地避免在类的默认构造函数中创建,初始化大量的对象。
5, 合理的申请数组空间,如果数组中所保存的元素占用内存空间较大或数组本身长度较长的情况,我们釆用可以釆用软引用的技术来引用数组,以“提醒”JVM及时的回收垃圾内存,维护系统的稳定性。
6,  避免创建重复的对象,我们在编写一个方法的时候应该先考虑方法里的局部对象域能否改为private static final,从而避免创建重复的对象。
7, 把try/catch块放入循环体内,会极大的影响性能,如果编译JIT被关闭或者你所使用的一个不带JIT的JVM,性能会将下降21%之多!
8,StringBuffer的构造器会创建一个默认大小(通常是16)的字符数组。在使用中,如果超出这个大小,就会重新分配内存,创建一 个更大的数组,并将原先的数组复制过来,再丢弃旧的数组。在大多数情况下,你可以在创建StringBuffer的时候指定大小,这样 就避免了在容量不够的时候自动增长,以提高性能。
9,   使用Java NIO提高服务端程序的性能。
10,考虑用静态工厂方法替代构造函数。
11,在对大量的数组拷贝时,可以考虑用Arrays.copyOf()来拷贝。
12, 在并发的情况下,要合理的选择同步的策略,应该谨慎的控制synchronized块的大小,不可以将一个操作分解到多个synchronized 但也要尽量地从synchronized块中分离耗时的且不影响并发的操作。
13,要合理的选择集合框架,例如:ArrayList和LinkedList在某些不同的场合,其性能相差很大。对要做大量的插入时,LinkedList 的性能比ArrayList的性能好。对要做大量随机查找的时候用ArrayList的性能比用LinkedList的性能好。还有在不需要并发操作的 情况下,选择非线程安全的集合比线程安全的集合要好。如在非线程安全的要求下,选择ArrayList要比Vector好。
14,如果是想把数据封装成Double类型的,不要这样使用new Double("1.23"),而要应这样使用new Double(1.23),虽然二者都没有语法 的错误,也都能达到预期的结果,但其性能有着很大的差异。
15, 应尽量的通过缓冲流类来提高I/O操作效率,但也要合理的选择缓冲大小 。
    呵呵,好了,今天就写到这吧,以后要是有时间再继续写。小弟我初学java,不对之地,欢迎大家指正,补遗。
分享到:
评论

相关推荐

    《码出高效:Java开发手册》-非扫描版-带目录.pdf.zip

    这本书以其详尽的内容和实用的指导,深受Java开发者的喜爱,被誉为进阶必备读物。通过阅读本书,开发者可以深入理解Java语言的核心特性,掌握最佳实践,从而在实际工作中编写出更高效、更可靠的代码。 本书涵盖了多...

    Struts与Hibernate实用教程构建基于MVC模式的高效Java Web应用例子代码(1)

    Struts与Hibernate实用教程构建基于MVC模式的高效Java Web应用例子代码 (1),共10个例子

    《码出高效:Java开发手册》

    总之,《码出高效:Java开发手册》是Java程序员的实用宝典,它将帮助你掌握高效编程的技巧,提升代码质量,实现更佳的软件工程实践。通过阅读和实践书中的内容,你将成为一名更优秀的Java开发者,为团队和项目贡献更...

    Java高级实用教程

    本教程"Java高级实用教程"旨在帮助你深入理解和掌握Java的核心高级概念,从而提升你的编程技能和解决问题的能力。下面将对Java的一些关键高级知识点进行详尽的阐述。 1. **多线程**:Java提供了丰富的多线程支持,...

    java实用文件小工具

    Java 实用文件小工具是一款专为IT从业者设计的高效文件管理解决方案,它包含了多项实用功能,如文件批量提取、删除以及将Oracle数据库的表结构导出为数据字典。这款工具极大地方便了日常的文件操作和数据库管理工作...

    java开发实用工具

    Java开发实用工具集合是一系列对Java开发者至关重要的资源,这些工具可以帮助提高开发效率,简化工作流程。在这个压缩包中,包含了各种常用的开发jar包、开发工具以及数据库和服务器管理工具,旨在为Java开发者提供...

    Java 2 实用教程 课后习题答案

    在《Java 2 实用教程 课后习题答案》中,我们主要探索的是Java编程语言的基本概念、语法以及实际应用。这本书的第三版由耿祥义和张跃平编著,旨在帮助学习者深入理解Java 2的核心概念,并通过解答课后习题来巩固所学...

    java2实用教程(源代码)

    《Java2实用教程》是Java编程领域的一本经典教材,主要针对初学者和有一定基础的开发者,提供了丰富的实例和详尽的解释,帮助读者深入理解Java语言的核心概念和技术。源代码部分则是配合书籍内容,提供了实际操作的...

    Java实用教程学习指导(第二版)

    这本书旨在帮助读者快速掌握Java编程语言的核心概念和实际应用,通过实例解析和详细的指导,使得学习过程更为高效。下面将详细阐述本书中的主要知识点。 1. **Java基础语法**:本书首先介绍了Java的基础知识,包括...

    实用数据结构教程_Java语言描述.zip

    本教程“实用数据结构教程_Java语言描述”涵盖了这个主题,旨在帮助学习者深入理解和应用Java中的数据结构。 1. 数组:数组是最基本的数据结构,它允许存储固定大小的同类型元素序列。在Java中,数组可以是一维、二...

    java实用程序100例

    Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和丰富的类库而闻名。在"java实用程序100例"这个压缩包中,你将找到一系列用于学习和参考的Java小程序案例。这些例子涵盖了Java编程的多个重要方面,...

    java例子大全 实用版

    多线程则展示了如何在Java中创建和管理并发执行的任务,这对于构建高效的并行应用程序至关重要。 Java集合框架是处理数据结构和对象集合的强大工具,包括ArrayList、LinkedList、HashSet、HashMap等。这些例子会...

    Java高效编程指南

    本指南将提炼《Effective Java》等经典书籍中的精华,为开发者提供一系列实用的编程技巧和最佳实践。 1. 类与对象设计 - 封装:确保类的内部状态只通过公共接口访问,使用私有变量和getter/setter方法。 - 接口...

    java2实用教程课件

    Java2实用教程是一本深入浅出的编程指南,由耿祥义和张越平两位资深Java专家撰写。这本书旨在帮助初学者和有一定基础的开发者掌握Java语言的核心概念和技术,同时也适合那些希望更新Java知识或者深化理解的程序员。...

    收集的一些比较实用的java的小项目4

    在本资源包“收集的一些比较实用的java的小项目4”中,您将发现一系列适合Java初学者和进阶者实践的项目,旨在帮助提升编程技能和加深对Java语言的理解。这些项目涵盖了不同的应用领域,包括管理系统、购物网站、...

    JAVA实用编程100例

    在"JAVA实用编程100例"这个主题中,我们将会深入探讨Java编程语言的一些核心概念和实际应用。Java是一种广泛使用的面向对象编程语言,它以其跨平台的特性、强大的性能以及丰富的类库而受到开发者们的青睐。这100个...

    java2实用教程电子教案(第2版gxy)java2实用教程第二版

    《Java2实用教程》是Java编程领域的一本经典教材,主要针对初学者和有一定基础的开发者,旨在深入浅出地介绍Java编程语言的核心概念和技术。第二版在此基础上进行了更新和完善,适应了Java语言的发展和变化。 在...

    140个java源码实例Java实用源码整理learns

    标题中的“140个Java源码实例Java实用源码整理learns”表明这是一个集合了140个Java编程的实战代码示例,旨在帮助学习者深入理解和掌握Java编程语言。这些实例通常涵盖了许多Java的基础和进阶概念,可能是从小到大的...

    实用数据结构教程_Java语言描述

    "实用数据结构教程_Java语言描述"这个资料提供了一个深入学习数据结构的平台,特别是针对Java程序员。 在Java中,数据结构主要分为以下几类: 1. **数组**:是最基本的数据结构,用于存储固定数量的同类型元素。...

    java2实用教程PPT

    基础部分还会涵盖字符串操作、数组和集合框架的基础知识,这些都是编写高效Java代码的关键。 其次,面向对象编程(OOP)是Java的核心特性之一。在Java2教程中,会深入讲解类和对象的封装、继承和多态性。封装允许...

Global site tag (gtag.js) - Google Analytics