是否必须将他们都实例化?
你可以使用随机文件读写
或者把 jvm 使用内存数目增大
或者干脆用个数据库
你可以使用随机文件读写
或者把 jvm 使用内存数目增大
或者干脆用个数据库
解决方案 »
- java如何自己写事务(与数据库无关)
- 急急急 怎么显示图片 !!!
- 荐一个自带1.5jre的“开源”浏览器,精简后的jre只有3m,超精悍!!!!!!!!!!
- JAVA 字符编码问题
- jdk1.6 导入新的api
- 使用splipt方法时遇到的一个问题
- java如何取得7天前的系统时间?
- 生成1000条数据,格式姓名:aa;学号:1,2,3,4....;年龄:22,用java程序实现,请大侠帮帮忙
- 在哪能找到JAVA的关键
- 真的很急不知道该怎么办?HotSpot Virtual Machine Error!!!
- 求救~~~~~~JAVA SOKET
- 有个问题关于JSplitPane,想请教各位,希望各位拔刀相助
刚又做了个测试,object不过10m,但我怎么在进程里看到java进程占了60多m的内存呢?
BTW: 100万记录用 ArrayList 绝对不是一个好注意,
如果处理过程不需要将所有数据都实例化后才能进行的化,
你可以用一下 Memory Mapped File,
如果必须将所有数据都实例化后才能计算那就不如用一个数据库了,
推荐 IBM 的 Cloudscape 嵌入式数据库
麻烦简单介绍一下Memory Mapped File
看来还是要用数据库:(
看能不能用Memory Mapped File这个东西语法很简单
FileChannel fc1;
MappedByteBuffer mbb;
fc1 = new RandomAccessFile(src, "r").getChannel();
mbb = fc1.map(FileChannel.MapMode.READ_ONLY, 0, fc1.size());
不过是按照字节读数据的
但是性能有保证
http://java.sun.com/j2se/1.4.2/docs/api/java/nio/Buffer.html
我主要是要在内存里处理一些数据,比如相同关键字的数据合并
我想导到文件里不一定是个好办法,我在考虑别的什么方案
不是很明白java的内存怎么分配的,实际数据的大小和java进程的内存占用差距太大了