JVM机制

作者: 离家出走的小白 | 来源:发表于2019-07-01 18:24 被阅读0次

    一:JVM里面有什么东西?

    eg:Book book=new Book();

            stack               head

            栈                        堆

    实例化的时候就已经在加载了。加载器分为BootStrapClassLoader(null)、EXTClassLoader、APPClassLoader。BootStrapClassLoader一般以空显示。

    上面的加载器APPClassLoader是EXTClassLoader的儿子,是BootStrapClassLoader的孙子。所以叫做“双亲委派机制”

    二:栈(后进来的先出去,相当于坐电梯一样。电梯叫了说明人满了,超载的那个人自觉地出去,就是先来后到,后进先出)

    1、特点:

    (1)他是后进先出

    (2)队列

    (3)有一定的容量,所以不可能无限大

    2、栈异常:stackOverFlowError(可以用方法无限递归来制造这个错误)递归就是方法自己调用自己,当栈容量被耗尽的时候就会报这个异常

    3、JVM系统优化(指的是堆内存调优【你可以在idea里面下载插件,然后看看堆所占用的空间等信息】)

    (1)新创建的类放在伊甸园,因为空间有限,放不下了就分配到一区或二区(它们是循环切换的,不知道哪个是一区或二区),一二区不不够放就放到老年代。老年代不够了就回收(GC就是在这个堆中起作用的)。

    (2)OOM异常(OutOfMemoryError)(比喻:人口出生率大于死亡率,地球装不下的时候就会报这个异常)

    创建这个异常就是死循环给String复制,把堆沾满,让GC回收不过来。

    (3)元空间是非堆内存。存在于操作系统内存中,可以进行垃圾回收

    (4)设置堆内存,堆JVM进行优化

    这些参数都有默认值,可以自己修改它们的值,在VM Options中 请注意不同参数之间的空格

    -XX:+PrintGCDetails是打印堆的部分信息

    相关文章

      网友评论

        本文标题:JVM机制

        本文链接:https://www.haomeiwen.com/subject/pxdncctx.html