java内存机制解析(一)

最近在看一些java底层知识,搬了这么久时间的砖头,也是时候了解底层原理了。顺便做个笔记。
java虚拟机运行时数据分区大概分为以下几个部分:
堆区,方法区,虚拟机栈,程序计数器。(本地方法栈和本地库接口不讨论)
程序计数器:java虚拟机是通过线程轮流切换并分配处理器执行时间来实现多线程的。因此在任何一个确定的时刻,一个处理器都只会执行一条线程的指令。 所以需要一个独立的程序计数器来记录当前执行的虚拟机字节码指令的地址。[b]线程私有。[/b]
虚拟机栈: 描述java方法执行的内存模型,每个方法执行的同时都会创建一个栈帧用来储存局部变量,操作数栈,动态链接等等。 方法调用实际上是一个栈帧在 虚拟机栈从入栈到出栈的过程。 [b]线程私有[/b]
堆区: java虚拟机里面内存最大的一部分,也是程序员经常打交道的。[b]线程共有。[/b]
存放对象实例,垃圾回收主要管理区域。细分为:新生代,老生代。
方法区:储存已加载的类信息,常量,静态成员,别名叫永久代。[b]线程共有[/b]
直接内存: 非java虚拟机运行时的数据区,但是可以通过NIO来操作,不受java虚拟机内存分配影响,但是受到操作系统内内存和处理器寻址空间限制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值