java内存优化问题~~~~~~~~~~~~~~~

cntmi 2009-07-01 03:55:28


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import platform.ai.base.app.ConnDBConfig;
import platform.ai.base.common.BaseObject;
import platform.ai.base.conf.BaseConfig;
import platform.ai.base.log.LogFileWriter;
import platform.ai.base.util.common.StringUtil;
import platform.dt.mq.util.MQSTATIC;
import stmacmbas.branch.socket.threads.RecordCigInfoFiles;
import stmacmbas.branch.socket.threads.Server;
import stmacmbas.branch.union_first_branch.comm.FileOperate;
import stmacmbas.branch.union_first_branch.comm.Joint;
import stmacmbas.branch.union_first_branch.comm.StrConnect;

public class ProcessJointCiginfos extends BaseObject {

String unionQueryPath = MQSTATIC.BUFFERPATH + "ciginfo/branch/union/" ;

private BufferedReader reader;

File file ;

String[] str;

String content;

String ip;

String key ;

String currentContent ;

String oldStr ="" ;

String newStr ="" ;

String filename ="" ;

StringBuffer s1 = new StringBuffer("") ;

Map dataMap = new HashMap();

LogFileWriter logWriter = new LogFileWriter(ConnDBConfig.TEMP_PATH, "ProcessJointCiginfos", this);
StrConnect strConnect = new StrConnect(logWriter);
FileOperate fileOperate = new FileOperate(logWriter);



public ProcessJointCiginfos() {

}


public File processData() {


try {
//处理过程

}catch(Execption e){

}finallay{
reader=null;

file =null;

str=null;

content=null;

ip=null;

key=null ;

currentContent=null ;

oldStr =null;

newStr=null;

filename=null;

s1 =null;

dataMap =null;

logWriter =null;
strConnect =null;
fileOperate =null;
}

}
}



我想在finally里面,把所有定义的对象全都初始化为null,这样会不会对内存优化有作用??
...全文
210 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰思雨 2009-07-01
  • 打赏
  • 举报
回复
我感觉是个良好的编程习惯问题。

情况允许时,将对象引用设为空,可以帮助垃圾回收。
例如楼主的ProcessJointCiginfos 类,当程序中保持这个类的对象时,
它的成员变量在没有设置成null时,是不会被GC的。
如果在最后将一些不影响其他方法使用的成员变量置为null,
那么,在调用processData方法后,有些成员变量所引用的对象将有可能会被GC。

如果该对象不会被程序永久保持,那么,它(包括其成员变量的引用对象)也会被GC掉。


还有,楼主要明白,什么是初始化。
将某个对象的引用设置为null,某些时候叫做初始化,
但,并不是所有这样的情况都叫初始化。
x_pengcheng 2009-07-01
  • 打赏
  • 举报
回复
在程序中如果大量用到字符串操作,建议用StringBuider或StringBuffer,java的内存回收靠GC,放在finally块中,
作用不大.
冥王之锤 2009-07-01
  • 打赏
  • 举报
回复
对你这段代码没有作用。在有些情况下是可以的。
Marty束 2009-07-01
  • 打赏
  • 举报
回复
好像有个gc参与管理的,用于垃圾回收
弘石 2009-07-01
  • 打赏
  • 举报
回复
没有作用
源码链接: https://pan.quark.cn/s/46590cc698ca 在信息技术领域,特别是在网络应用程序开发和用户界面设计方面,构建支持多选项选择的下拉选择框是一项普遍的需求。常规的下拉选择框往往仅限于让用户选择一个选项,然而,通过定制和扩展,我们能够构建一个能够支持多个选项选择的下拉选择框。以下将对这一主题进行深入探讨。 我们将探讨“支持多选项选择的下拉选择框”的构建方法。这种功能通常应用于用户需要从众多选项中进行选择,而全部选项不可能在页面上完全展示的情况。在这种情况下,一个可进行多选项选择的下拉选择框提供了一种既高效又节省空间的解决方案。描述中提到,这种多选项下拉选择框是通过一个被称为“checkboxlist”的元素构建的,这可能是使用特定的编程语言(如JavaScript、HTML5或特定的前端框架如React、Vue)中的一个组件或控件。 在网络应用程序开发中,实现此类功能通常需要以下步骤: 1. **HTML结构**:构建一个基础的下拉选择框结构,通常使用``元素的样式。 3. **JavaScript交互**:为了实现checkboxlist的效果,通常会运用JavaScript或jQuery来处理用户的交互事件,如点击、键盘操作等,同时更新选定的选项状态。 4. **自定义控件**:在某些场景下,为了获得更佳的用户体验,开发者可能会选择创建自定义的用户控...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧