堆: 也称heap堆区。堆是jvm内存中占用空间最大的一个区域。主要分为新生代、老年代、永久代(jdk1.8以后叫元空间,到1.9以后又被移除) 新生代: 在new一个对象时,会把堆新生代的内存空间进行判断,如果内存空间够则放入新生代(如果是大对象,例如数据很多的容器对象,有可能直接放入老年代)。如果内存空间不够放入该对象,则 触发young gc,如果触发15次新生代空间还不够则把之前使用的数据迁移到老年代并释放新生代所有的空间。如果老年代的空间不够用,则进行full gc。如果老年代内存也不够用则抛出OOM 并结束线程。
我们知道java程序是把java源文件编译成字节码.class文件,然后交给JVM执行。那么java到底是解释执行还是编译执行的语言呢?这个没有固定的答案,具体要要看用什么样的JVM。JVM把class文件编译成机器码执行那就是编译执行,如果JVM对class加载后由JVM解释执行就是解释执行。有的JVM即有yo解释执行也有编译执行。JVM的种类:hotspot jvm:这是最常用的JVM实现,由
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号