zoukankan      html  css  js  c++  java
  • Java类加载机制内存回收和分配

    Java内存机制
    Java内存分为若干个区域:程序计数器,Java虚拟机栈(存储临时变量表,操作数栈,动态链接,方法入口),对应着栈的出栈入栈过程,本地方法栈(调用本地方法),Java堆(内存最大的一块,所有线程共享的区域,在虚拟机启动时创建,此内存区的唯一目的是存放对象实例,包括数组,Java堆是垃圾管理器管理的的主要区域,分为新生代,老年代,永生代)、方法区(跟Java堆一样,也是所有线程共享的区域,用来加载类信息,常量、静态变量、及时编译的代码数据,也是垃圾搜集器同一管理)、运行时常量池(用于存放编译期生成的各种字面常量和符号引用,Java并不要求所有常量在编译期才产生,例如字符串);

    程序计数器、虚拟机栈、本地方法栈区域是随着线程而生而亡,不需要过多考虑内存回收。而Java堆和方法区确定算法:

    1、引用计数算法:python FlashPlayer、Squirrel:存在循环引用

    2. 可达性分析算法(GC roots)是否到达

    3. 垃圾搜集算法:标记清除算法,标记整理算法、复制算法

    虚拟机类加载机制

    Java类的加载、连接初始化、都是在程序运行期间完成的、可以增加灵活性、依赖运行期动态加载、和动态连接

  • 相关阅读:
    C 运算符, 有符号数据运算,
    P1337 [JSOI2004]平衡点 / 吊打XXX 模拟退火
    [POI2011]Garbage 欧拉回路
    # bzoj2215: [Poi2011]Conspiracy 2-sat
    hdu1814 Peaceful Commission 2-sat
    2-sat相关复习
    #2718. 「NOI2018」归程 kruskal重构树
    JXOI2018守卫 区间DP
    [NOI1995]石子合并 四边形不等式优化
    3900: 交换茸角
  • 原文地址:https://www.cnblogs.com/csxf/p/3608481.html
Copyright © 2011-2022 走看看