急!程序错误!(100分)

  • 主题发起人 主题发起人 WWWJP
  • 开始时间 开始时间
W

WWWJP

Unregistered / Unconfirmed
GUEST, unregistred user!
1:请问一个内存方面的问:
在java当中分配string类型的数组时(比如 new string[10000]),
它能分配这么大吗?这样对整个系统的影响大不在?
2:急!程序错误!
有一个java程序,功能就是将动态生成的文本文件当中的数据
导入到数据库当中。程序时刻监听是否有该文本文件。
如果文件到来,它就从里读数据,并把它插入到数据库当中.
程序通常莫名其秒地停止运行,通过写log文件,得知,
程序终于是在于向oracle数据库插入记录时.
我的想法如下:
1:由于插入数据库的时候开启了一个事务,
是不是有时候记录个数太多,缓冲区太小了,不能装载所有的记录.
才导致错误.一般这是这不可能吧?
2:以前曾碰到过一个内存冲突的问题导致程序终止。
在该程序中曾分配了两个很大的string数组。
程序思路是先从文本文件当中读出所有的记录,并组建成sql。
一个先删除以前的,一个用于插入数据.
由于文本文件比较大,有时候有1M以上.所以说两个保存sql
的数组就比较大了(目前碰到最大的是4000,两个加起来就是8000了)。
由于java当中释放内存块的功能并不是很好,
我怀疑是不是这儿出错了,有没有这种可能。
--------------------
各位大虾,快帮忙看看,说说可能出错的地方在哪儿?先谢谢了。
 
》1:请问一个内存方面的问:
在java当中分配string类型的数组时(比如 new string[10000]),
它能分配这么大吗?这样对整个系统的影响大不在?//
用Stringbuffer 看看
 
1:由于插入数据库的时候开启了一个事务,
是不是有时候记录个数太多,缓冲区太小了,不能装载所有的记录.
才导致错误.一般这是这不可能吧?
oracle 8.0.6,我试过一个transaction支持10000次写操作没有问题。只要你每次都把
prepared statement关掉。

2:以前曾碰到过一个内存冲突的问题导致程序终止。
在该程序中曾分配了两个很大的string数组。
程序思路是先从文本文件当中读出所有的记录,并组建成sql。
一个先删除以前的,一个用于插入数据.
由于文本文件比较大,有时候有1M以上.所以说两个保存sql
的数组就比较大了(目前碰到最大的是4000,两个加起来就是8000了)。
由于java当中释放内存块的功能并不是很好,
我怀疑是不是这儿出错了,有没有这种可能。
不明白你的意思。你是说你做了两个数组来存放sql语句?
我的理解这样的程序只需要1个connection,一个preparedStatement阿。
 
多人接受答案了。
 
后退
顶部