zoukankan      html  css  js  c++  java
  • 方法区 永久代 元空间 常量池

    方法区:jvm标准

    永久代:hotspot实现 1.7

    元空间:hotspot实现 1.8

    首先,metaspace默认的最大值是整个机器的物理内存大小,所以metaspace不断扩张会导致java程序侵占系统可用内存,最终系统没有可用的内存;而永久区则有固定的默认大小,不会扩张到整个机器的可用内存。当分配的内存耗尽时,两者均会触发full gc,但不同的是永久区在full gc时,以堆内存回收时类似的机制去回收永久区中的类元数据(Class对象),只要是根引用无法到达的对象就可以回收掉,而metaspace判断类元数据是否可以回收,是根据加载这些类元数据的Classloader是否可以回收来判断的,只要Classloader不能回收,通过其加载的类元数据就不会被回收。

    原文链接:https://blog.csdn.net/xyghehehehe/article/details/78820135

    常量池

    1.6  - 永久代(方法区)

    1.7、1.8  - 堆

    但是即使是同样在堆中:

    public class StringConstancePool {
    public static void main(String[] args) {
    String str1 = new String("abc");
    String str2 = str1.intern();
    System.out.println(str1 == str2);
    }
    }
    以上程序的运行结果仍然是false,这时因为intern生成的str2所引用的字符串内容是在字符串常量池中,而通过new String方法生成的str1,该字符串对象是位于存放对象的Java堆中,二者的地址是不同的。

    原文链接:https://blog.csdn.net/MustangJy/article/details/88044964

  • 相关阅读:
    终端设备 tty,pty,pts 概念与文件描述符的联系
    Nginx – access_log格式及配置
    Nginx – rewrite 配置 URL重写及301跳转原理图
    nginx命令启动及选项
    nginx-web身份验证
    nginx_server_location对客户资源的辨别规则
    利用Session防止表单重复提交
    归并排序
    Cookie/Session的机制与安全
    HTTP Cookie Session
  • 原文地址:https://www.cnblogs.com/silyvin/p/11543669.html
Copyright © 2011-2022 走看看