java -version
java version "1.5.0_21"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_21-b01)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_21-b01, mixed mode)lsb_release -a
LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: EnterpriseEnterpriseServer
Description:    Enterprise Linux Enterprise Linux Server release 5.3 (Carthage)
Release:        5.3
Codename:       Carthage

解决方案 »

  1.   

    64 位的 JVM 所开僻的最大内存数理上论是没有限制!但是 32 位系统是有限制的,在 32 位 Windows 上最大值在 1.4G~1.6G 之间。详见:Why can't I get a larger heap with the 32-bit JVM?
      

  2.   

    拿32位系统来说吧,最大支持寻址是2^32次方,也就是4G的内存,但是实际上32位的XP只支持到3G的内存,另外1G是无法被系统所使用的。所以抛开这个不说,比如一个系统能有1G的富裕内存供jre,那么jre的最大内存就可以设置成1G。也就是说系统实际可以被使用的内存是a,维持系统运行所需要的最低内存是b,最高内存是c,那么jre可以设置的再a-c和a-b之间。当然了,一般系统运行所需内存数是无法准确预计的,所以这个范围也只是上限,不会真有人这么去设置的,会造成不必要的风险。