zoukankan      html  css  js  c++  java
  • jvm内存结构

    java内存管理机制

    Java采用了自动管理内存的方式

    Java程序是运行在Jvm之中的

    Java的跨平台的基于Jvm的跨平台特性

    内存的分配和对象的创建是在Jvm中

    用户可以通过一系列参数来配置Jvm

                    jvm运行区域

    jvm运行 区域

    栈内存

    线程私有

    生命周期和线程相同

    主要存放内容

      基本数据类型(int,char,float,double…)

      对象的引用,指向了对象在堆内存中起始地址

      通过-Xss参数配置大小(一个线程启动是申请的内存大小)

    堆内存

     

    堆内存是Jvm中空间最大的区域

    所有线程共享堆

    所有的数组以及内存对象的实例都在此区域分配

    堆内存大小通过参数进行配置

      -Xmx:最大堆内存

      -Xms:最小堆内存

    堆内存构成

      新生代:包括三块区域,eden、from survivor(s0)、to survivor(s1)

       老年代:old gen

    Object o = new Object() 其中,o存放在栈内存中,new Object()存放在堆内存中,变量o是Object对象的引用,o上存放了Object对象占用内存的起始地址

    永久代

    永久代也叫(Method Area) 各线程共享,

    主方法区要存放类信息、常量、静态变量,如 public static int a = 10

    垃圾回收行为比较少见

  • 相关阅读:
    SpringMVC注解控制器详解
    在自己的服务器上安装GitBook
    基于UDP协议的网络编程
    RabbitMQ安装使用详解
    Python3.4 + Django1.7.7 搭建简单的表单并提交
    暴力枚举 UVA 10976 Fractions Again?!
    暴力枚举 UVA 725 Division
    思维 UVALive 3708 Graveyard
    DFS(剪枝) POJ 1011 Sticks
    DFS+模拟 ZOJ 3861 Valid Pattern Lock
  • 原文地址:https://www.cnblogs.com/dwdw/p/11007074.html
Copyright © 2011-2022 走看看