`
swerit
  • 浏览: 56229 次
  • 性别: 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二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目源代码

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

    JAVA上百实例源码以及开源项目

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

    java源码包2

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

    数据库优化,代码优化数据库

    数据库优化,代码优化数据库,超简单,java初级程序员专用。

    java源码包4

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

    初级,中级,高级的程序员java简历

    初级程序员Java简历资源描述: 熟悉Java编程语言,具备基本的面向对象编程能力 熟悉基本的数据结构和算法,能够解决简单的编程问题 了解常用的Java开发工具和框架,如Eclipse、Spring等 具有良好的团队合作和沟通...

    java源码包3

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

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员...

    Java面试宝典5.0And6.0.zip

    该宝典系统地整理了Java初级,中级,高级的基础知识,代码质量,解题思路,优化效率等面试要点,面试的基础知识从编程语言,数据结构及算法三方面总结程序员面试知识点,世间事,很多都可投机取巧,但技术却必须靠日积月累的...

    《Android应用开发揭秘》附带光盘代码.

     15.3 初级优化  15.4 高级优化  15.5 Android高效开发  15.6 AndroidUI优化  15.7 其他优化  15.7.1 zipalign  15.7.2 图片优化  15.8 小结  第五部分 扩展篇  第16章 Android NDK开发  16.1 AndroidNDK...

    collectionJava源码-Senior-Java-Developer:高级Java开发人员将负责审查规格,然后设计,编码和测试软件组件

    •不惧怕重构代码库以防止位腐烂•您知道何时代码可以很好地执行,以及代码的哪些部分可能无法正常工作,但是您还知道何时开始进行优化还为时过早。 •您愿意自由共享信息,指导其他初级开发人员并编写文档。 •您...

    初级java笔试题-golang-playground:一个简单的golang教程和练习小码的DIY练习库

    初级java笔试题Golang游乐场 大图 谁创造了 GO? Go 不是由一些热门的初创公司创建的,也不是一种时尚! 它的创建是为了解决现有编程语言的特定问题。 它由一些行业知名工程师创建。 他们拥有丰富的经验并使用多种...

    初级java笔试题-careers-in-computer-science-Andy-Guo-13:由GitHubClassroom创建的ca

    初级java笔试题 计算机科学职业 电子游戏开发商 基础知识 简而言之,视频游戏开发人员是为视频游戏创建视觉效果和编写代码的人。 他们的职责包括: 计划游戏:他们计划故事情节、人物、进展等。他们会将项目分解成更...

    dalgenx:dalgenX是对支付宝dalgen代码生成器的开源实现,freemarker版,可迭代开发生成器,同时支持ibatis和mybatis

    ),它生成Java代码时会双向比对Java文件。所以本版基本上是重构开发,命名为dalgenX。 与支付宝dalgen还有一个区别:支付宝dalgen只支持ibatis,而dalgenX可以在ibatis与mybatis之间自由切换生成.dalgenX解决dalgen...

    Spark从入门到精通

    5、Spark案例实战的代码,几乎都提供了Java和Scala两个版本和讲解(一次性同时精通Java和Scala开发Spark); 6、大量全网唯一的知识点:基于排序的wordcount,Spark二次排序,Spark分组取topn,DataFrame与RDD的两种...

    Java版水果管理系统源码-Forward:Java+Android知识体系+Jetpack系列详解+MVVM实战(补充中......)

    初级工程师:阅读官方文档+练习官方Demo 技术要求 四大组件使用 如何布局 简单的自定义View 动画 书籍推荐 《第一行代码》 《疯狂Android》 中级工程师:写文章要独立思考和有技术深度;阅读源码+自定义View+滑动...

    java版商城源码下载-OnlineShop:网上商店

    还有两个重点:(1)项目代码使用的都是常用但入门门槛较低的方式,比较适合初级Android开发者;(2)项目在持续优化中 使用的开源技术(蓝色字体含链接): 1. 2. 3.Gson解析 4. 5. 6. 7. 8. 9. 10. 11.ShareSDK 12. 13. 14. ...

Global site tag (gtag.js) - Google Analytics