例如,假设我有一个应用程序可以读取包含大量数据行的CSV文件.我根据数据类型向用户提供行数的摘要,但我想确保我不读取太多数据行并导致OutOfMemoryErrors.每行都转换为一个对象.有没有一种简单的方法可以通过编程方式找出该对象的大小?是否有一个引用定义了大型基元类型和对象引用的大小VM?
现在,我的代码可以读取多达32,000行,但我还希望代码能够读取尽可能多的行,直到我使用了32MB的内存.也许这是一个不同的问题,但我仍然想知道.
众所周知,java使用以下数据类型
byte Occupy 8 bits in memory
short Occupy 16 bits in memory
int Occupy 32 bits in memory
long Occupy 64 bits in memory
Run Code Online (Sandbox Code Playgroud)
如果我创建一个类似的
class Demo{
byte b;
int i;
long l;
}
Demo obj = new Demo();
Run Code Online (Sandbox Code Playgroud)
现在的问题是obj大小< or > or =尺寸b+i+l是104 bytes.请以正当理由给我澄清.
谢谢,
Anil Kumar C.