`
swerit
  • 浏览: 57843 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java代码初级优化

    博客分类:
  • j2se
阅读更多
以下优化方法在《android应用开发揭秘》一书中摘抄。

    在java程序中,性能问题的大部分原因不在于java语言,而是在于程序本身。下面就来具体分析一下这方面的问题。

1:尽量指定类的final修饰符。
    带有final修饰符的类是不可派生的。在java核心api中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。


2:尽量重用对象。
    特别是String对象的使用中,出现字符串连接情况时应使用StringBuffer代替。由于系统不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收处理。因此,生成过多的对象将会给程序的性能带来很大的影响。


3:尽量使用局部变量。
     调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其它变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。


4:不要重复初始化变量。
     默认情况下,调用类的构造函数时,java会把变量初始化成确定的值,所有的对象被赋值成null,整数变量(byte,short,int,long)设置成0,float和double变量设置成0.0,逻辑值设置成false。当一个类从另一个类派生时,这一点尤其应该注意,因为用new关键词创建一个对象时,构造函数链中的所有构造函数都会被自动调用。


5:在java+oracle的应用系统开发中,java中内嵌的sql语句尽量使用大写的形式,以减轻oracle解析器的解析负担。


6:java编译过程中,进行数据库连接、i\o流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,会导致严重的后果。


7:由于jvm的有其自身的gc机制,不需要程序开发者的过多考虑,从一定程度上减轻了开发者负担,但同时也遗漏了隐患,过分的创建对象会消耗大量的系统内存,严重时会导致内存泄露,因此,保证过期对象的及时回收具有重要意义。jvm回收垃圾的条件是:对象不再被引用;然而,jvm的gc并非十分地机智,即使对象满足了垃圾回收的条件也不一定会被立即回收。所以,建议在对象使用完毕后,手动设置成null。
分享到:
评论

相关推荐

    JAVA初级代码

    "JAVA代码.java"这个文件很可能是包含了上述所有概念的示例代码,通过阅读和运行这些代码,可以帮助初学者更好地掌握Java编程基础。记得在实践中不断尝试、调试和优化代码,这是提升编程能力的关键步骤。

    java高级 初级 中级 教程

    再者,JNI(Java Native Interface)允许Java代码调用C或C++原生代码,这在需要高性能计算或者集成已有的原生库时非常有用。 高级Java还涵盖了Spring框架,这是一个广泛使用的开源框架,用于简化企业级应用的开发。...

    Java初级案例程序题

    在Java编程的学习过程中,初级阶段通常会涉及到...在实践中,初学者应注重代码规范,培养良好的编程习惯,同时,不断思考和优化解决方案,以提高编程思维能力。记得多动手实践,理论结合实际,才能真正掌握Java编程。

    Java初级阶段 必做的题目

    排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序)是数据处理的基础,理解各种排序算法的原理和效率有助于优化代码性能。 11. **面向接口编程**:Java提倡面向接口编程,通过依赖倒置原则,可以使...

    java程序性能优化-pdf+源码

    本书结合理论与实践,既包含了基础的性能优化原则,也探讨了高级的优化技巧,适合从初级到中级的Java程序员学习。 在Java编程中,性能优化是一个关键领域,因为这直接影响到程序的运行速度、资源消耗以及用户体验。...

    java私塾教材大全(初级中级高级)

    8. **JVM原理**:理解Java虚拟机的工作机制,包括内存模型、垃圾回收、类加载机制等,有助于优化代码性能。 9. **Spring框架**:学习Spring的核心概念,如依赖注入(DI)、面向切面编程(AOP),以及Spring Boot和...

    JAVA初级35选7彩票代码

    **文件操作**:题目中的"JAVA初级完整版.doc"可能是一个文档,包含了彩票系统的完整代码或详细说明。在实际项目中,我们可能会使用文件操作(如`FileReader`、`BufferedReader`)来读取配置文件或保存结果。 **异常...

    java俄罗斯方块初级版

    《Java实现俄罗斯方块初级版详解》 在编程领域,用Java语言开发游戏是一种常见的实践,其中,俄罗斯方块作为一款经典的游戏,是初学者学习游戏编程的理想选择。本项目"java俄罗斯方块初级版"旨在帮助开发者了解如何...

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    2022年java初级工程师面试题.docx

    本文档总结了Java初级工程师面试题,涵盖了数据库优化、JS弹出式消息提示、JSP和Servlet的区别、Java语言基础知识等多方面的知识点。 数据库优化 1. 硬件调整性能:扩大虚拟内存、关闭不必要的服务、将数据库...

    JAVA面试初级篇

    ### JAVA面试初级篇知识点详解 #### Java语言的优点 1. **简单高效**:Java的设计理念是简化编程过程,去除了一些复杂特性,如头文件、指针变量、结构体、运算符重载、多重继承等。这有助于降低学习曲线,使初学者...

    java代码大全

    《Java代码大全》这本书是一本针对所有程序开发初级人员非常有用的技术书籍。它不仅适合于经验丰富的程序员,也适合那些几乎不懂编程技巧的新手。该书从软件质量和编程思想等多个方面深入讨论了软件构造的相关问题,...

    java 程序性能优化-pdf +源码

    《Java程序性能优化》这本书是Java开发者们提升技能和理解代码效率的重要参考资料。它结合了理论与实践,不仅深入解析了Java性能优化的各种策略和技术,还提供了丰富的源代码实例,帮助读者更好地理解和应用这些知识...

    Java初级程序员面试必备的基础知识总结.zip|Java初级程序员面试必备的基础知识总结.zip

    - **JSP**:结合HTML和Java代码,方便生成动态网页。 - **JDBC**:Java访问数据库的标准接口。 掌握以上这些Java基础知识,对于初级程序员来说,不仅能应对面试,也能为日后的开发工作打下坚实的基础。不断学习和...

    java2023年初级面试题java概念面试题java基础面试题持续更新中

    Java虚拟机(JVM)是执行Java程序的核心,它将Java代码编译为字节码,这是一种平台无关的中间表示,能够在任何支持JVM的系统上运行。JVM是Java运行时环境的一部分,而JDK(Java Development Kit)包含了JVM、Java...

    超级玛丽的JAVA代码

    《超级玛丽的JAVA代码》是一款基于Java编程语言实现的经典游戏——超级玛丽的源代码。这个项目为初级和中级Java程序员提供了很好的学习资源,它不仅能够帮助初学者了解游戏开发的基本流程,还能深入理解Java语言在...

    实验7 Java源代码分析程序

    在本实验中,我们将探讨Java初级阶段如何创建一个简单的源代码分析程序。 一、Java语言基础 在开始编写源代码分析程序之前,我们需要熟悉Java的基础知识。Java是一种面向对象的编程语言,由Sun Microsystems(现为...

    简易人工智能五子棋java代码

    【简易人工智能五子棋Java代码】是一个编程项目,旨在实现一个基本的五子棋游戏,玩家可以与计算机进行对弈。这个项目的核心是利用Java语言编写的游戏逻辑和一个初级的人工智能算法。以下是对这个项目的详细解读: ...

    初级入门jsp源代码

    JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者将静态HTML与动态Java代码结合,以创建交互式Web应用。对于初学者来说,理解和掌握JSP的基本概念和用法是进入Web开发领域的关键步骤。本文将通过...

    java常用算法大全源代码.zip

    通过阅读这些源代码,不仅可以学习到如何在Java中实现各种算法,还能了解到如何优化代码性能,提升解决问题的能力。此外,这些源代码也可以作为实际项目中的参考,帮助开发者快速解决遇到的计算问题。 总的来说,这...

Global site tag (gtag.js) - Google Analytics