JVM基础整理(java开发必备)

导图

jvm内存模型

            

方法区:用来存储元数据信息的内存区域(元数据信息是jvm执行类加载过程中,类装载后的结果信息),构建类的实例和调用对象的方法时都会访问元数据。

        元数据:

            类型信息:类的权限定名,超类的权限定名,类型是类还是接口,类型的访问修饰符

            字段信息:字段名,字段类型,字段修饰符。

            方法信息:方法名,方法返回类型,方法参数的数量和类型。

            其他信息:1.常量和静态变量。
                             2.常量池:JVM会为每个已加载的类型维护一个常量池。是一个已加载类型的有序集合 。通过索引访问。

       方法区的特性:1.是线程安全的,是线程共享。2.方法区大小不必固定,是jvm根据需要动态调整的。3.可以被垃圾器收集。

 

 

虚拟机栈:为字节码服务,线程私有的内存区域,生命周期和线程一致。描述java方法执行时的内存模型。

       1.一个java方法从执行到结束,就对应着栈帧从入栈到出栈的过程。

       2. 对执行引擎来说,只有栈顶栈帧是有效的。

       3.内存区域划分:

         局部变量表:是一组变量值存储空间,用于存放方法参数和方法。内部定义的局部变量。通过索引的方式来访问。

         操作数栈 :一个以字长为单位的数组。

         动态连接:运行期间符号引用转换成直接引用。

         返回地址:分为正常返回(pc计数器的值作为返回地址)和异常结束返回(地址通过异常处理器表来确定)。

 

本地方法栈:为虚拟机需要用到的native方法服务。

堆:是java虚拟机管理的内存中最大的一块。被线程共享的,存放对象实例。堆是垃圾收集器主要管理的内存区域。

jvm垃圾回收:有效的防止内存泄漏,有效的使用空闲的内存空间。

HotSpot VM:是Sun JDK和OpenJDK中所带的虚拟机,使用最广泛的java虚拟机。

 

       

 

 

 

 

             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值