一般对于JAVA的内存泄露问题怎么解决? 最近怀疑这段程序会吃光内存,但是我用完对象以后全部释放的,不是CLOSE就是NULL~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 里面有用到BufferedReader 和StringBuffer 和bufferReader和string buffer关系不大吧,帖上来认为有问题的代码,一块分析下先 检查你的sql,不要一下子查询出所有记录 if ("" != mate) br = new BufferedReader(new InputStreamReader( matein, mate));// 将写入的信息读出来 else br = new BufferedReader(new InputStreamReader( matein));// 将写入的信息读出来 baiduUrl = null; urlcon = null; System.out.println("...。...结束URL连接,并且装入开始LINE"); int nextBoy=0; while ((line = br.readLine())!= null&&nextBoy<600){ nextBoy++; sb.append(line); //////////////////////////////就是卡在这句,程序都会卡住,而我在其他地方引用同样的WHILE却不会卡住,很奇怪的问题 } line = sb.toString(); sb = new StringBuffer(""); System.out.println("..................装入SBSB完毕"); in.close(); matein.close(); br.close(); in = null; matein = null; br = null; 另外,数据库中没有做全部读出的操作,操作如下: public Keyword getKeyword(){ try { Object obj=getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException{ Query query=session.createQuery("from Keyword as kw where kw.status=0"); Keyword kw=(Keyword)query.setMaxResults(1).uniqueResult(); //马上改状态为1(处理中) 防止其他服务器重复读取该关键字 try{ if(kw!=null){ kw.setStatus(new Long(1)); session.save(kw); session.flush(); } return kw; }catch(StaleObjectStateException e){ //程序出现这个异常,说明已经有服务器对这个关键字进行处理了,需要重新选择一个关键字// System.out.println("数据被修改了"); session.clear(); session.close(); return getKeyword(); } } }); return (Keyword)obj; } catch (RuntimeException re) { log.error("get failed", re); throw re; } } 我运行24小时以后,程序也断了,LINUX下查询内存一看剩余内存只有100000了,使用已经900000了,一共内存是1000000 JAVA版本问题? 基于TCP协议C/S构架程序的几点疑惑,希望高手帮助下 一道笔试题大家看看 对数据表进行更新操作是用哪个方法啊? 这样的 Java Bean 怎么 不打印啊?? 555~~~ 简单问题在线等待****请问在JAVA中怎幺判断EOF?? 紧急问题!!!高手救救小弟!! jbuilder7问题!!!??? 简单问题,来着有分 装了Tomcat 4.0.1,localhost:8080却出来3.2.3的画面? 关于字符串的比较和结果保存的问题 100分 求八方块手动求解程序代码 挑战!
BufferedReader 和StringBuffer
br = new BufferedReader(new InputStreamReader(
matein, mate));// 将写入的信息读出来
else
br = new BufferedReader(new InputStreamReader(
matein));// 将写入的信息读出来
baiduUrl = null;
urlcon = null;
System.out.println("...。...结束URL连接,并且装入开始LINE");
int nextBoy=0;
while ((line = br.readLine())!= null&&nextBoy<600){
nextBoy++; sb.append(line); //////////////////////////////就是卡在这句,程序都会卡住,而我在其他地方引用同样的WHILE却不会卡住,很奇怪的问题
}
line = sb.toString();
sb = new StringBuffer("");
System.out.println("..................装入SBSB完毕");
in.close();
matein.close();
br.close();
in = null;
matein = null;
br = null;
另外,数据库中没有做全部读出的操作,操作如下:
public Keyword getKeyword(){
try {
Object obj=getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException{
Query query=session.createQuery("from Keyword as kw where kw.status=0");
Keyword kw=(Keyword)query.setMaxResults(1).uniqueResult();
//马上改状态为1(处理中) 防止其他服务器重复读取该关键字
try{
if(kw!=null){
kw.setStatus(new Long(1));
session.save(kw);
session.flush();
}
return kw;
}catch(StaleObjectStateException e){
//程序出现这个异常,说明已经有服务器对这个关键字进行处理了,需要重新选择一个关键字
// System.out.println("数据被修改了");
session.clear();
session.close();
return getKeyword();
}
}
});
return (Keyword)obj; } catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}