zoukankan      html  css  js  c++  java
  • JVM内存整理

    jvm 内存模型

    大致分为堆和栈,内存共享有方法区和堆,线程私有虚拟机栈和本地方法栈,以及程序计数器

    堆主要存放对象实例,方法区主要存放类信息,常量,静态变量及时编译后的代码

    虚拟机栈,主要 局部变量表,操作数栈,动态链接和方法出口

    何为GC

      GC指内存回收

    判断对象是否可回收

      1引用计数法

      如果对象之间相互引用,无法判断

      2可达性分析算法

      即对象无法达到gc root

      如何逃逸,重写finalize方法,重新引用,finalize方法系统只能调用一次

    哪些对象可作为gc root

      栈(虚拟机栈引用的对象和本地方法栈引用的对象)

      堆(方法区中类静态属性引用的对象和常量引用的对象)

    Safe Point 主要指的是以下特定位置:

    • 循环的末尾
    • 方法返回前
    • 调用方法的 call 之后
    • 抛出异常的位置 另外需要注意的是由于新生代的特点(大部分对象经过 Minor GC后会消亡), Minor GC 用的是复制算法,而在老生代由于对象比较多,占用的空间较大,使用复制算法会有较大开销(复制算法在对象存活率较高时要进行多次复制操作,同时浪费一半空间)所以根据老生代特点,在老年代进行的 GC 一般采用的是标记整理法来进行回收。
  • 相关阅读:
    哈密顿绕行世界问题 (dfs)
    山东省第八届ACM大学生程序设计竞赛
    HDU
    HDU
    hdu 1241(DFS/BFS)
    centos7 df 命令卡死
    hosts文件修改之后立刻刷新
    shell脚本打印日期时间
    CentOS6设置php-fpm开机自启动
    Word中怎么设置忽略拼写和语法检查提醒
  • 原文地址:https://www.cnblogs.com/chenyangwang/p/13383683.html
Copyright © 2011-2022 走看看