黑马程序员技术交流社区
标题: main()函数存放在栈内存还是方法区?? [打印本页]
作者: 杨永峰 时间: 2012-5-23 21:52
标题: main()函数存放在栈内存还是方法区??
main()函数也是静态方法,按道理应该存放在方法区中,但是老师上课的画的说明图(下图)中main函数放在栈中?是出于什么原因?
作者: 杨永峰 时间: 2012-5-24 12:49
怎么没人回答呢?问的问题有问题??
作者: 古银平 时间: 2012-5-24 12:56
main方法是在方法区中的,你红色花的那个是在main方法中建立的一个对象或变量,那么对象名回变量名是放在栈内存中,存着指向对象或数据的地址的。
作者: 丰亚彬 时间: 2012-5-24 12:59
main()方法是静态的,存放在方法区,你所谓的在栈里面有main那是这个函数的入口地址,相当于一个引用,程序开始执行时找到这个入口开始执行程序,它指向的位置还是方法区实际的内容
作者: 王德升 时间: 2012-5-24 13:02
存放在栈内存中,main函数,作为程序的入口,可以被JVM调用。
另外main:不是关键字,但是是一个特殊的单词,可以被JVM识别的。
由jvm自动分配释放 ,存放函数的参数值,局部变量的值。
作者: suiabing 时间: 2012-5-24 13:03
main函数是放在方法去中的,而且是独立的一片空间,但是虚拟机得调用啊,那个图是说main()函数进栈了,就是说 他是一个引用,指向方法区静态池中的一片空间,运行完之后会退栈的。main函数在调用其他函数,其他函数的返回值也是返回给main的
作者: 杨永峰 时间: 2012-5-24 13:10
隋丙跃 发表于 2012-5-24 13:03
main函数是放在方法去中的,而且是独立的一片空间,但是虚拟机得调用啊,那个图是说main()函数进栈了,就 ...
有些明白了,图中的这个栈是线程级的还是进程级的?还是。。。
作者: 贾旭 时间: 2012-5-24 13:19
main函数的执行代码是在方法区,但是引用还是得进栈。引用是在栈内存中的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |