`
iamxi
  • 浏览: 191812 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java代码优化方案 J2ME内存优化

    博客分类:
  • Java
阅读更多
原文出处:http://www.cnblogs.com/yangyh/archive/2009/08/13/1544819.html

从几本书上,N个网站上整理的一些JAVA代码优化方案,最近的项目只有1M内存可用,必须很抠门了~J2ME项目更要注意的
避免内存溢出

l 不用的对象释放(置空)

如 :

a不为空时 a=new object()//这句代码执行时将有两个对象存在于内存中

较好的写法是a=null; a=new object();

不用的对象设置成null

l 内存溢出通常发生在构造函数中,在构造函数中变量在要用时再new,用完之后置null

一次性加载所有图片很容易造成内存峰值。

可以用 if(img==null){

Create…

}

l 考虑用静态工厂方法替代构造函数(但是,注意释放,单例模式的释放只能由自己来做)。

l 使用局部变量

l 图形重绘操作用部分重绘

l 避免在同一个类中通过调用get set来设置或调用变量,用public

l 避免在循环中生成同一个变量或调用同一个函数

l 常用变量尽可能用static final private

l 能用byte的就不用int,String

l 不要使用double

l 复制大量数据时用System.appaycopy()

l 避免使用泛型

l 尽量不使用try catch,必须使用时不要在循环体内写try catch

l 字符串操作使用StringBuffer

代码2是代码1执行速度的两倍:

代码1:

String title=new String(“大家好”);

Title+=”欢迎”;

Title+=”阅读”

//会在栈中生成五个对象:“大家好”,“欢迎”,“阅读”,“大家好欢迎”,“大家好欢迎阅读”

代码2:

StringBuffer title=new StringBuffer(“大家好”);

Tltle.append(“欢迎”);

Title.append(“阅读”);

l StringBuffer的构造器会创建一个默认大小(通常是16)的字符数组。在使用中,如果超出这个大小,就会重新分配内存,创建一个更大的数组,并将原先的数组复制过来,再丢弃旧的数组。在大多数情况下,你可以在创建StringBuffer的时候指定大小,这就避免了在容量不够的时候自动增长,以提高性能。

l 使用零值做为判断条件

For(int i=a.length()-1;i>=0;i--) 优于 for(int i=0;i<a.length();i++)

l 不要重复初始化变量

默认情况下,调用类的构造函数时, Java会把变量初始化成确定的值:所有的对象被设置成null,整数变量(byte、short、int、long)设置成0,float和 double变成0.0,逻辑值设置成false

l 乘法和除法用移位 ,除法比乘法慢,所以用乘于倒数来代替除法

考虑下面的代码:

for (val = 0; val < 100000; val +=5) { alterX = val * 8; myResult = val * 2; }

用移位操作替代乘法操作可以极大地提高性能。下面是修改后的代码:

for (val = 0; val < 100000; val += 5) { alterX = val << 3; myResult = val << 1; }

l 传递尽可能少的参数到经常调用的方法

l 不要有空方法,或方法内代码很少而方法又很少调用

l 避免类型转换

使用Profiler去查找哪里需要优化
改进你的算法,写最优的代码
分享到:
评论

相关推荐

    基于Java的源码-J2ME优化压缩PNG文件.zip

    总之,"基于Java的源码-J2ME优化压缩PNG文件.zip"提供了处理J2ME平台上PNG图像优化的解决方案,涉及了图像处理、压缩算法、性能优化等多个方面。通过深入研究这些源码,开发者不仅可以学习到如何在资源受限的环境中...

    Android代码-安卓J2ME模拟器

    3. **性能优化**:尽管是模拟器,但J2ME-Loader通过优化算法和内存管理,尽力提供接近原生应用的运行效率。 4. **开源**:J2ME-Loader是基于Apache 2.0许可的开源项目,开发者可以查看源代码,对其进行自定义修改...

    xml.rar_j2me_j2me xml_java xml_xml j2me

    在IT领域,XML(eXtensible Markup Language)是一种用于标记数据的标准格式,它具有自我...通过阅读和分析这两份源码,我们可以学到如何根据J2ME的特性定制XML处理解决方案,以及如何在实际项目中优化内存管理和性能。

    J2ME内存优化

    ### J2ME内存优化 #### 一、代码优化 在J2ME开发中,内存管理是至关重要的。由于设备资源有限,高效的内存管理能够确保应用的稳定性和性能。本节将详细探讨如何通过代码优化来避免内存溢出。 1. **垃圾回收机制的...

    J2ME代码优化的两种方案(2)

    本文将详细介绍两种J2ME代码优化方案,并通过具体的案例分析来帮助开发者理解如何在实践中应用这些优化技巧。 #### 二、优化方案详解 ##### 方案一:减少内存消耗与提高执行效率 **1. LCDUI图形优化** 在J2ME中...

    J2ME代码优化的两种方案(1)

    本文将详细介绍两种针对 J2ME 的代码优化方案,并通过实例讲解如何实施这些优化。 #### 二、减少对象创建与复用 在 J2ME 开发中,频繁的对象创建会导致内存消耗过大,进而可能引发性能问题。因此,减少对象的创建...

    JAVA源码手机游戏J2ME毕业设计

    本文详细介绍了与“JAVA源码手机游戏J2ME毕业设计”相关的几个关键知识点,包括J2ME平台的基本概念及其在游戏开发中的应用、JAVA源代码的作用、毕业设计的一般流程以及百度网盘分享的方法。希望这些信息能够帮助读者...

    JAVA基于J2ME的手机游戏开发(论文+源代码)

    7. **性能优化**:由于移动设备资源有限,开发者需要关注代码的效率,如减少内存分配,避免不必要的计算,以及适时的图片和对象复用。 通过这篇论文,读者可能能了解到如何将这些概念应用于实际的手机游戏开发中,...

    J2ME游戏代码(含报告)

    报告部分可能会包含游戏的设计思路、技术选型原因、开发过程中的挑战与解决方案、性能优化措施,以及测试结果等。这有助于理解游戏的实现过程,对于学习J2ME游戏开发来说是一份宝贵的资料。 通过研究这个项目,...

    java课设毕设参考-JAVA基于J2ME的手机游戏开发(论文+源代码).zip

    源代码部分则包含了实现上述功能的实际Java代码,学生可以从中学习到如何组织代码结构,如何编写有效的函数,以及如何使用J2ME的特定API来实现游戏的各种功能。通过阅读和分析这些代码,学生可以加深对J2ME编程的...

    Java J2me手机炸弹人游戏代码.zip

    6. **优化技巧**:J2ME运行在内存和计算能力有限的设备上,所以优化代码以减少内存消耗和提高性能是必要的,例如使用轻量级的数据结构和算法。 7. **调试和测试**:在模拟器或真实设备上进行调试和测试,确保游戏在...

    J2ME景点查询源代码

    **J2ME景点查询源代码详解** Java 2 Micro Edition(J2ME)是一种轻量级的Java平台,主要用于移动设备、嵌入式系统和其他有限资源的设备上。本源代码是一个基于J2ME开发的景点查询系统,旨在帮助用户在移动设备上...

    JAVA基于J2ME的手机游戏开发(论文+源代码).zip

    5. **内存与性能优化**:由于J2ME在资源有限的设备上运行,开发者必须关注内存管理和性能优化,避免内存泄漏和过度消耗CPU资源。 6. **网络功能**:J2ME支持联网功能,游戏可以利用这一点实现在线排行榜、多人对战...

    JAVA基于J2ME的手机游戏开发(论文+源代码).rar

    在J2ME游戏开发中,理解类的继承、封装和多态性至关重要,同时,熟练掌握线程管理和内存优化也是提高游戏性能的关键。 5. **毕业设计过程**:在进行计算机毕业设计时,通常需要经历需求分析、系统设计、编码实现、...

    JAVA基于J2ME的手机游戏开发(论文+源代码).7z

    Java基于J2ME的手机游戏开发是一个典型的毕业设计项目,主要涵盖了Java编程语言和Java Micro Edition(J2ME)技术的应用。J2ME是Java平台的一个子集,专门用于资源有限的设备,如早期的智能手机和平板电脑。在这个...

    j2me_cldc.rar_cldc_j2me_j2me_cldc_java 虚拟机_虚拟机

    《J2ME CLDC:Java虚拟机在嵌入式设备上的应用...通过研究和修改CLDC的源代码,开发者不仅可以提升应用的性能,还能深入了解Java在受限环境下的运行机制,从而为创建更加高效和可靠的嵌入式Java解决方案打下坚实基础。

    【计算机专业Java-毕业设计100套之】JAVA基于J2ME的手机游戏开发(论文+源代码)

    源代码是毕业设计的核心部分,它体现了开发者对Java语言和J2ME的理解程度。通过阅读和分析源代码,可以学习到游戏开发的实践经验,如如何组织代码结构、优化性能、处理异常等。 总的来说,这个毕业设计项目旨在培养...

Global site tag (gtag.js) - Google Analytics