jvm内存结构,Java自学教程百度云

  1. 是一块很小内存空间,可以看作当前线程的所执行的字节码行号指数器,字节码解释器需要通过改变这个计数器的值来选取下一条需要执行的字节码指令

  2. 分支、循环、跳转、异常处理、线程恢复等操作都依赖程序技术器。

  3. 每个线程都拥有独立的程序计数器。

  4. 如果正在执行的是本地方法(native),那么计数器的值为空

特点:线程私有唯一不存在内存溢出的区域

java虚拟机栈


介绍:

  1. 虚拟机栈描述的是java线程的内存模型

  2. 线程中每个方法执行的时候都会创建栈帧用于存储局部变量表操作数栈动态连接方法出口等信息。

  3. 每个方法被调用到执行完,对应着栈帧在虚拟机中从入栈出栈的过程

特点:线程私有、线程请求的栈深度超过虚拟机运行的深度,将会抛出StackOverflowError异常

本地方法栈


介绍:

  1. Hot-Spot虚拟机直接将本地方法栈虚拟机栈合二为一。

特点:线程私有,在栈深度扩展失败时也会抛出StackOverflowError异常

java堆


介绍:

  1. 《java虚拟机规范中》堆描述:所有的对象实例以及数组都应当在堆上分配

  2. java堆是垃圾收集管理的内存区域,也可以称作GC堆

  3. 堆可以处于物理上不连续的内存空间中,但在逻辑上应该被视为连续的,但是对于大对象数组,很可能会要求连续的内存空间

特点:线程共享,堆内存不够时会抛出OutOfMemoryError异常

方法区


介绍:

  1. 储存已被虚拟机加载的类型信息常量静态变量即时编译器编译后的代码缓存

  2. jdk8以前Hot-Spot方法区的实现称为永久代,是堆内存的一部分

  3. jdk9以后Hot-Spoy方法区的实现称为元空间,使用的是直接内存

特点:线程共享、无法满足新的分配需求时会抛出OutOfMemoryError异常

运行时常量池

技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

[外链图片转存中…(img-hOVtF9SG-1630058195300)]

[外链图片转存中…(img-cMVswxH2-1630058195301)]

最后,若需要完整pdf版,可以点赞本文后点击这里免费领取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值