JVM内存结构
本文最后更新于10 天前,其中的信息可能已经过时,如有错误请发送邮件到1169063119@qq.com

jvm内存结构分为五个区域:栈,堆,本地方法栈,程序计数器,方法区。

栈是存储函数运行中的一些变量,当程序进入一个方法时,会为这个方法单独分配一块私属存储空间,叫做栈帧,用于存储这个方法内部的局部变量,等这个方法结束时,对应栈帧释放,栈帧中变量随之释放。

堆用来存储所有new出来的对象实例及数组

本地方法栈是java虚拟机运行时数据区域的一部分,用于支持本地方法的运行

程序计数器是执行程序当前的位置,此区域是jvm中唯一不可能出现内存溢出或内存泄漏的位置

方法区主要时存储一些静态的方法或者是静态变量、运行时常量池等

其中栈和本地方法栈以及程序计数器合起来是线程私有的。线程私有的意思是程序在运行过程中会单独创建一份内存,有多少个线程就会有多少个栈

堆区和方法区是线程共享的。

在堆上创建的对象它是不能够随着函数运行完毕自动清理的,因为你也不知道是否有其他线程也引用当前的对象来访问的

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇