• java基础知识(四)java内存机制


    Java内存管理:深入Java内存区域

      上面的文章对于java的内存管理机制讲的非常细致,在这里我们只是为了便于后面内容的理解,对java内存机制做一个简单的梳理。

      程序计数器:当前线程所执行的字节码的行号指示器,虚拟机下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖改变这个计数器的值来完成。

      栈:保存局部变量、引用,方法调用结束即被释放。每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口

    等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。分为虚拟机栈和本地方法栈

      堆:在虚拟机启动时创建,被所有线程共享,存储对象实例,由java垃圾收集器(GC)进行内存释放管理。

      方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等,也是所有线程共享的区域。

      常量池(Constant Pool):方法区的一部分,java语言并不要求常量只能在编译时产生,运行时也可将新的常量放入常量池中,String类的intern()方法是用的较多的运行时常量添加方式。

      静态区:方法区的一部分,存储static修饰的成员(静态变量或static修饰的块)或全局变量。

      下面是java在内存中的执行流程

  • 相关阅读:
    《团队-团队编程项目作业名称-成员简介及分工》
    《团队-团队编程项目作业名称-需求分析》
    《结对-结对编项目作业名称-需求分析》
    团队编程项目总结
    并发工具包
    并发工具包
    spring注解的源码解释
    webservice客户端
    线程池
    问题
  • 原文地址:https://www.cnblogs.com/sunjf/p/java_memery.html
Copyright © 2020-2023  润新知