• Java类加载机制内存回收和分配


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

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

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

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

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

    虚拟机类加载机制

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

  • 相关阅读:
    第一次个人编程作业
    第一次结对编程作业
    第一次编程作业——地址簿
    我的第一次博客作业
    团队作业1
    作业一
    寒假作业四
    寒假作业三
    第二次寒假作业
    电梯
  • 原文地址:https://www.cnblogs.com/csxf/p/3608481.html
Copyright © 2020-2023  润新知