JVM基础:深入学习JVM堆与JVM栈( 四 )
在Java中 , Main函数就是JVM栈的起始点 , 也是程序的起始点 。
程序要运行总是有一个起点的 。 同C语言一样 , java中的Main就是那个起点 。 无论什么java程序 , 找到main就找到了程序执行的入口:)
JVM堆中存什么?JVM栈中存什么?
JVM堆中存的是对象 。 JVM栈中存的是基本数据类型和JVM堆中对象的引用 。 一个对象的大小是不可估计的 , 或者说是可以动态变化的 , 但是在JVM栈中 , 一个对象只对应了一个4btye的引用(JVM堆JVM栈分离的好处:)) 。
为什么不把基本类型放JVM堆中呢?因为其占用的空间一般是1~8个字节——需要空间比较少 , 而且因为是基本类型 , 所以不会出现动态增长的情况—— 长度固定 , 因此JVM栈中存储就够了 , 如果把他存在JVM堆中是没有什么意义的(还会浪费空间 , 后面说明) 。 可以这么说 , 基本类型和对象的引用都是存放在 JVM栈中 , 而且都是几个字节的一个数 , 因此在程序运行时 , 他们的处理方式是统一的 。 但是基本类型、对象引用和对象本身就有所区别了 , 因为一个是JVM栈 中的数据一个是JVM堆中的数据 。 最常见的一个问题就是 , Java中参数传递时的问题 。
推荐阅读
- s6|金铲铲之战:S6双城传说如何才能快速上手?基础知识很关键
- 手机游戏|LOL手游跳段有先兆!60%胜率是基础,若ID前出现“小代标”,恭喜
- 三国志|日本人对三国的热爱,盘点十部以三国为基础创作的日漫,名字带有“三国志”的就占据半壁江山
- 手机游戏|LOL手游出工会了,怎么创建以及有何意义,让我们深入了解一下
- 泰拉瑞亚|泰拉瑞亚:挖矿的基础操作,地下真的有怪物!
- 太空狼人杀|《太空狼人杀》将登陆索尼和微软的游戏平台,基础售价29.99美元
- 地下城与勇士|2021年的DNF游戏,适合初学者,零基础的新人入坑吗
- steam|Steam测试版本更新,新内容备受关注,带你深入了解
- 交易|GameFi的未来需要更多支点,lemo EMDM打造撬动行业的基础设施!
- 梦幻西游|梦幻西游:梦幻最强召唤兽资质,满成长是基础,攻资能达到1800呢