JVM内存模型
栈:每个方法执行时,都会创建一个栈桢,记录着局部变量,方法出口等方法的相关信息。方法的执行到结束,对应着一个栈桢入栈到出栈的过程。线程私有,当栈的深度超过JVM所允许的深度时,会抛出StackOverflowError,如果是动态栈,超过可以扩展范围,则会抛出OutOfMemoryError。
堆:线程共享,所有对象实例,数组都在此分配,gc管理的区域。
方法区:用来存在被加载的class,常量,静态变量,已经编译后的代码缓存等,线程共享。
程序计数器:字节码行号指示器。通过改变计数器的值,来决定下一步,执行哪一条字节码指令。每个线程都有一个单独的程序计数器。不会出现OutofMemoryError的情况。
本地方法栈:用来执行JVM调用的一些本地方法(底层)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!