如何判断我的应用程序运行的JVM是32位还是64位?具体来说,我可以访问什么功能或偏好来在程序中检测到这个?
问题不在于32位操作系统上的最大堆大小,因为32位操作系统的最大可寻址内存大小为4GB,并且JVM的最大堆大小取决于可以保留多少连续空闲内存.
我更感兴趣的是知道在64位操作系统中运行的32位JVM的最大(理论上和实际可实现的)堆大小.基本上,我正在寻找与SO相关问题中的数字类似的答案.
至于为什么使用32位JVM而不是64位JVM,原因不是技术性的,而是行政/官僚性的 - 在生产环境中安装64位JVM可能为时已晚.
我已经看到关于这个问题的多个评论 - 有些人说是,有些人说不,而且许多答案都含糊不清.任何人都可以用更简单的术语描述它所在的位置吗?在一篇文章中,我甚至看到有人说它与类内存共享相同的内存位置,类是由类加载器加载的 - 这是真的吗?