`
lhh_hoo
  • 浏览: 16999 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

不健壮代码的特征及解决办法

阅读更多

1、尽早释放无用对象的引用。好的办法是使用临时变量的时候,让引用变量在退出活动域后,自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。对于仍然有指针指向的实例,jvm就不会回收该资源,因为垃圾回收会将值为null的对象作为垃圾,提高GC回收机制效率;
2、我们的程序里不可避免大量使用字符串处理,避免使用String,应大量使用StringBuffer,每一个String对象都得独立占用内存一块区域.
3、尽量少用静态变量,因为静态变量是全局的,GC不会回收的;
4、避免集中创建对象尤其是大对象,JVM会突然需要大量内存,这时必然会触发GC优化系统内存环境;显示的声明数组空间,而且申请数量还极大。
5、尽量运用对象池技术以提高系统性能;生命周期长的对象拥有生命周期短的对象时容易引发内存泄漏,例如大集合对象拥有大数据量的业务对象的时候,可以考虑分块进行处理,然后解决一块释放一块的策略。
6、不要在经常调用的方法中创建对象,尤其是忌讳在循环中创建对象 。可以适当的使用hashtable,vector 创建一组对象容器,然后从容器中去取那些对象,而不用每次new之后又丢弃
7、内存溢出错误一般都是发生在开启大型文件或跟数据库一次拿了太多的数据,造成 Out Of Memory Error 的状况,这时就大概要计算一下数据量的最大值是多少,并且设定所需最小及最大的内存空间值。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/naughty610/archive/2010/02/01/5277073.aspx

分享到:
评论
4 楼 SoloTerran 2010-03-04  
看了第一条就没看下去
你用了null也未必回收,用了gc()也未必回收,这种代码没什么好多写的
3 楼 pipilu 2010-03-04  
第一条真没什么必要。
2 楼 超级潜水艇 2010-03-04  
LZ所说的很多已经是现在JVM不太适用的原则
1 楼 iany 2010-03-04  
应该用StringBuider, 少用StringBuffer. StringBuffer 是同步的。

相关推荐

    代码注释率,有效解决程序健壮性的问题

    本文将深入探讨如何通过提高代码注释率来有效解决程序健壮性问题。 首先,代码注释是提升程序可理解性的关键。当一个项目涉及到多人协作时,清晰的注释可以帮助新加入的开发者快速理解现有代码的功能和结构,降低...

    保持代码健壮性的小技巧

    ### 保持代码健壮性的小技巧:深入学习Java原理 #### 1. 字符串连接:性能与效率 在Java中,字符串连接是常见的操作,但不同的实现方式对性能的影响巨大。直接使用加号(`+`)进行字符串连接会在每次操作时创建新...

    如何编出健壮的代码,java编程30条规则

    规则 14: 当客户程序员用完对象以后,若你的类要求进行任何清除工作,可考虑将清除代码置于一个良好定义的方法里,采用类似于 cleanup()这样的名字,明确表明自己的用途。这条规则对对象的生命周期进行了规定,帮助...

    json封装的工具类,提高代码的健壮性和复用性能

    本压缩包提供了一个封装的JSON工具类,旨在提高代码的健壮性和复用性能,降低项目的耦合度,便于异步通讯和实现异步请求功能。 1. **JSON基础** JSON是一种基于文本的数据格式,主要由键值对组成,支持数组和对象...

    java代码-使用java解决学生管理系统的问题的源代码

    - 在执行数据库操作时,应捕获并处理可能出现的SQLException,确保程序的健壮性。 5. **文件操作**: - 考虑到文件名为`manager_Student`,可能还包括读写文件的功能,比如导出或导入学生数据到CSV或XML文件。 6...

    学习C++中遇到的问题,及解决方法

    在学习C++编程的过程中,初学者常常会遇到各种挑战,这些问题可能会阻碍学习进度,但解决它们是提升编程技能的关键步骤。下面将详细讨论一些常见的问题及其解决方案。 1. **内存管理**:C++允许直接控制内存,这...

    代码大全--代码之美

    8. **测试驱动开发(TDD)**:这是一种先写测试后写代码的开发方法,可以保证代码的正确性。TDD鼓励编写自动化测试,确保每次修改都不会引入新的错误。 9. **代码审查**:书里可能会强调代码审查的重要性,这是一个...

    《重构 改善既有代码的设计》之代码的坏味道

    - **解决方法**:为了消除重复代码,可以考虑将这些重复的部分抽象成单独的函数或方法,并在需要的地方调用这个函数。这样不仅可以提高代码的复用性,还可以减少未来修改时的工作量。 2. **塑造模板函数 (Form ...

    C++入门必学,经典代码集,代码不长容易掌握,面试必备

    异常处理是C++中的错误处理机制,通过try、catch和throw关键字,你可以编写健壮的代码来捕获并处理运行时错误。 在C++test和C++test1这样的文件夹中,通常会包含一些实践练习或测试代码。这些代码可能涵盖了一些...

    前端-代码走查模板.docx

    在前端项目管理中,代码走查是一个至关重要的环节,它有助于规范开发行为,...在遇到问题时,及时与代码审核人员沟通,共同优化解决方案。通过这种集体智慧的结晶,我们能够打造出更加健壮、高效、易于维护的前端应用。

    关于CRA-00600:内部代码错误解决

    关于CRA-00600:内部代码错误解决,这一主题主要聚焦于Oracle数据库中一个常见的技术难题——ORA-00600错误的识别与处理。ORA-00600是一种内部错误,通常指向Oracle数据库内核中的某种异常情况,其参数列表如[19004]...

    python程序设计现代方法-源代码.rar

    《Python程序设计现代方法》是一本深入探讨Python编程的教材,其源代码rar文件提供了丰富的学习资源,包括每章节的示例代码和课后练习题的解决方案。这些源代码是针对Python 3版本编写的,并且经过了严格的测试,...

    Java经典代码 Java经典代码

    "Java经典代码"通常指的是在Java编程中常见的、实用的、经过时间检验的代码片段,这些代码可以解决常见问题,或者展示了一些核心概念和技术。在这个Java项目案例导航源代码的压缩包中,我们可以期待找到各种各样的...

    c++程序好玩的源代码

    5. **异常处理**:学习如何使用try、catch和throw关键字来捕获和处理程序运行时可能出现的错误,这是编写健壮代码的重要部分。 6. **标准库的使用**:C++标准库提供了大量的功能,如I/O流(iostream)、容器(如...

    程序设计基础课程设计代码及报告

    在编写代码的过程中,他们需要考虑程序的健壮性、错误处理以及代码优化等问题,这些都是成为优秀程序员必不可少的技能。 此外,报告的撰写是另一个重要的学习环节。它要求学生以书面形式解释他们的设计思路、实施...

    完整的代码大全 pdf版

    这本书对于任何级别的程序员都极具价值,无论你是初学者还是经验丰富的开发者,都能从中找到提升代码质量的有效方法。下面将详细讨论这本书中的一些核心知识点。 1. **代码可读性**:《代码大全》强调了代码的...

    matlab测试代码在符文问题的最佳解决方案.zip

    在`说明.txt`文件中,通常会包含对代码的详细解释、如何运行代码的步骤、预期输入和输出、可能遇到的问题以及解决方法等。阅读这个文档至关重要,因为它是理解并正确使用提供的MATLAB代码的关键。 MATLAB测试代码的...

    RTX数字登录名解决办法

    总的来说,RTX数字登录名问题的解决办法是通过升级RTX版本和修改接口代码,使得系统能够正确识别和处理纯数字形式的用户账号。这种问题的解决对于保持企业内部通信系统的稳定性和用户体验至关重要。同时,这也提醒...

    C#318文件不能为空 源代码

    在C#编程中,"文件不能为空"是一个常见的错误提示,通常出现在尝试访问或操作一个不存在或者为空的文件时。这个错误可能由多种情况引起...在编写涉及文件操作的代码时,应当注重错误处理,以确保程序的健壮性和可靠性。

    matlab《迈向健壮和弹性的网络物理系统——物理故障和网络攻击下的状态感知和控制》中开发的代码.zip

    《迈向健壮和弹性的网络物理系统——物理故障和网络攻击下的状态感知和控制》这一研究,旨在解决网络物理系统在面临不确定性、故障或恶意攻击时的稳定性和性能问题。状态感知是指通过传感器获取系统的实时信息,而...

Global site tag (gtag.js) - Google Analytics