JVM+GC(1)

阅读: 评论:0

JVM+GC(1)

JVM+GC(1)

JVM内存结构

  1. 方法区:
    1. 存储运行时常量池,虚拟机所加载的类信息(版本字段方法接口),常量,静态变量,编译后代码
    2. innern()可以将堆中new的实例的常量放在常量池
    3. 方法区
    4. 垃圾回收在方法区的行为
    5. 异常定义
  2. 堆:
    存储对象的实例
    垃圾回收的主要区域
  3. 程序计数器:
    比较小的内存空间
    处于线程独占区
    如果线程执行的是Java方法,计数器记录的是字节码指令地址
    没有内存溢出的情况
    GOTo切换到某一行,保留字
  4. 虚拟机栈:
    存放方法运行时数据,存的栈帧
    每个方法执行都会创建一个栈帧,存储局部变量表(存放各种基本数据类型,引用类型,returnaddress类型。内存空间在编译期完成分配,当进入一个方法是,这个方法分配多少内存是固定的,方法运行期间不会改变局部变量大小),操作数栈,动态链接,方法出口
    栈的大小
    为虚拟机执行Java方法服务
  5. 本地方法栈:
    为虚拟机执行native方法服务
  6. 直接内存:
    jdk1.4弥补IO 的一宗NIO ,分配堆外内存
  7. 栈上分配:
    根据逃逸分析,分析对象作用域
JVM垃圾回收
  • 什么是垃圾:内存中不再使用的对象

  • 如何判断对象是否应该被回收?

    • 引用计数法(一般不采用)

    • 可达性分析法(一定要从GCRoot开始)

      • 可以作为GCroot的对象
      • 虚拟机栈中的
      • 方法去中的静态属性引用的对象
      • 方法区中常量引用的对象
      • 本地方法栈中JNI引用的对象
    JVM 垃圾回收算法

本文发布于:2024-01-28 00:59:19,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063747583699.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:JVM   GC
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23