JDK 7与有什么区别,jdk每一代之间都是巨大的,那么大家知道JDK7和8之间有什么区别吗?今天本站值班编辑就会大家详细的解析下JDK 7和8之间的区别是什么,对这个问题感兴趣的朋友,下面大家可以随小编一起看看吧,本站提供JDK 7与jdk8免费下载
JDK 7和8的区别?
一、在JDK 8之前类元数据(如方法数据、方法信息(字节码、堆栈和可变大小)、运行常量池、确定的符号引用和虚拟方法表)在永久生成中保存。
二、32位默认永久生成大小为64m,64位默认值为85m,可以由参数-XX:MaxPermSize设置,一旦类的元数据超过永久生成大小,就会抛出OOM异常。
三、在JDK 8的热点中,虚拟机团队从Java堆中删除了永久生成,并将类的元数据直接保存在本地内存区域(堆外内存),称为存储空间。
四、当JMM初始化堆内存时,新旧之间代差是多少?
四、默认情况下,新一代(Young)与老年(老年)的比率为1:2(可由参数-XX:NewRatio指定),即新一代(Young)=1≤3的堆空间大小。Jdk7堆空间大小=2≤3。
五、"默认情况下,Edem:from:to=8:1:1(可由参数-XX:SurvivorRatio设置),即新一代空间的大小为Eden=8/10和新一代空间的大小为from=to=1/10。
六、JVM一次只使用Eden和一个Survivor区域来服务对象,因此新一代的实际内存空间为9≤10(即90%)。
七、JDK 8对JVM体系结构的转换将类元数据放在本地内存、常量池和静态变量中,放入Java堆中。HotSoptVM将显式地为类元数据分配和释放本地内存。
八、在这个体系结构中,类元信息突破了原来的-XX:MaxPermSize限制,现在可以使用更多的本地内存。
九、这在一定程度上解决了jdk8在运行时生成大量类所造成的频繁的FullGC问题,那么就可以轻松解决了