JVM知识

作者: zsj0310 | 来源:发表于2017-04-22 00:56 被阅读0次

    java字符串在内存中:
    存放于堆中或者字符串常量区

    堆内存

    堆内存分为Permanent Space(持久代) 和Heap Space 。
    Heap Space

    年轻代:所有新生成的对象都放在年轻代。年轻代的作用就是快速收集掉生命周期短的对象。针对年轻代的垃圾回收就是young gc 。

    老年代:在年轻代中经历了多次gc垃圾回收后任然存在的对象,就会复制到老年代中。老年代存放一些生命周期较长的对象。针对老年代的垃圾回收就是old gc。溢出原因:创建千万量的对象,以及千万量的字符串处理。

    持久代:存放java类定义信息,静态数据。跟垃圾回收没有关系。溢出原因:动态加载了大量的java类。

    方法区

    方法区和堆一样,是被线程共享的区域,在方法区中, 存储了每个类的信息(包括类的名称,方法信息,字段信息),静态变量,常量,以及编译后的代码。

    垃圾收集

    使用垃圾收集的程序不需要明确释放对象,现代垃圾收集能够处理循环引用的问题,能提高程序的效率,可能会有泄露的问题。

    相关文章

      网友评论

          本文标题:JVM知识

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