JVM虚拟机内存结构

JVM内存结构java

项目中的数据是怎么运行的呢?程序员

java文件编译后运行就变成了class文件spa

class文件经过类加载器存入内存空间中对象

内存空间:内存

    方法区:保存了static和class的信息 ,且在方法区中是永久保存的,垃圾回收机制(GC)是不会回收的资源

    通常由程序员分配释放,保存了new出来的信息,在堆中垃圾回收机制(GC)是会回收的开发

    堆内存中又分为新生代和老生代编译器

        新生代:不常用的对象存在的地区(GC回收的次数比较多的)编译

            eden:当new出来的时候就会在eden中,也是GC常常回收的一个区class

            注:S1和S2功能是同样的,大小也是同样的

            S1(from):new出来后一段时间就会保存在这里

            S2(to):new出来后一段时间就会保存在这里

        老年代: 常用的对象存放的地区 (GC回收的次数比较少的)

            当你常用一个对象的时候,就会自动的保存到老年代

    由编译器自动分配释放,保存了临时信息,即便用的方法,在栈中会自动释放资源,

        常见问题:栈内存会不会内存溢出呢?

        答案:        会的,例如死循环或者在类中调用本类,它们会一直循环知道大于栈内存的深度就会内存溢出

    本地方法栈:在安卓开发中底层是c语言,本地方法栈表示用java调用c语言

    垃圾回收机制(gc):回收堆内存中的数据

相关文章
相关标签/搜索