Sizeof for Java

Q:java中有和C中的sizeof()相似的操作符吗?  

A:简单的说java没有提供任何和C中sizeof()类似的操作符。但是我们可以分析一下为什么java程序常常需要他.

    一个C程序员需要自己定义数据结构、分配内存,而sizeof()是知道内存块大小从而分配内存所必需的。另外,C内存分配器比如malloc()基本上不做任何事情,直到对象初始化时: programmer must set all
    object fields that are pointers to further objects. But when all is said and coded, C/C++ memory
    allocation is quite efficient.

    相比之下,java对象分配和构造是连在一起的(使用Allocated但未初始化的对象是不可能的).If a Java class defines fields that are references to further objects, it is also common to set them at construction time. Allocating a Java object therefore frequently allocates numerous interconnected object instances: an object graph.和自动垃圾收集联系一起,this is all too convenient and can make you feel like you never have to worry about Java memory allocation details.

    当然,这些事情都是对简单的java应用程序而言.和C/C++相比,同等的java数据结构需要占用更多的物理内存.在企业级的软件开发中, 现在的32位JVM(java虚拟机)的最大可用虚存通常仍scalability constraint.因此,java程序员仍应该得益于sizeof()或其他的相似的东东来注心是否他的数据结构 are getting too large or contain memory bottlenecks.幸运的是,Java reflection 可以让你方便的写出这些工具.
http://www.javaworld.com/javaworld/javaqa/2003-12/02-qa-1226-sizeof.html?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值