A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭小伟 中级黑马   /  2012-12-22 21:10  /  1370 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请教:内存只是对变量;或者说,程序就是对变量的操作,从而通过内存来运行程序;或者说,程序是通过操作内存中的变量来运行的。
这样理解对吗?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

正序浏览
内存一共分成5个区,堆区,栈区,方法区等,程序的运行首先是虚拟机读取main函数,这个时候就产生了一个压栈的动作,main函数压栈之后,就会根据你所写的程序一步步的向下运行,前边跟你说过成员变量和引用数据类型的问题,如果下边是一个引用数据类型的话就会出现压栈,而main函数的动作就是弹栈操作,可以理解为栈区操作一次只针对一个对象,引用对象来了,其他的就要出去,这个时候在堆区创建一个空间,并将一个地址值赋给这个引用,然后依次往下继续走程序。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
变量都是放在内存中的,内存中专门有一定的区域放置这些变量,不同的变量放在不同的区,当程序运行时,系统会向内存中来取这些变量,这是由操作系统帮我们完成

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你这直接就写上内存范围就有点大了,内存一共分成5个区,我们主要用的是堆区,栈区,方法区这几个区,其他的补怎么使用,因而就不多说这个了,程序的运行首先是java虚拟机读取main函数,这个时候就产生了一个压栈的动作,main函数压栈之后,就会根据你所写的程序一步步的向下运行,前边跟你说过成员变量和引用数据类型的问题,如果下边是一个引用数据类型的话就会出现压栈,而main函数的动作就是弹栈操作,可以理解为栈区操作一次只针对一个对象,引用对象来了,其他的就要出去,这个时候在堆区创建一个空间,并将一个地址值赋给这个引用,然后依次往下继续走程序,不知道这么解释你能不能明白?如果补明白再单独问我,一起讨论。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马