黑马程序员技术交流社区
标题:
类加载问题
[打印本页]
作者:
谢毅
时间:
2013-1-29 22:08
标题:
类加载问题
本帖最后由 张向辉 于 2013-1-31 22:01 编辑
毕老师说过,一个类的静态成员和非静态方法都是随着类的加载而加载到方法区的,那么照理说mian方法也会到方法区,那么在new对象的时候,main方法是最先被加载到方法区然后马上在栈内存中调用它在方法区的地址么。。。。这里没弄明白,希望高手指教。
作者:
王溢君
时间:
2013-1-29 22:13
Person p=new Person("zhangsan",20);
该句话所做的事情:
1.在栈内存中,开辟main函数的空间,建立main函数的变量 p。
2.加载类文件:因为new要用到Person.class,所以要先从硬盘中找到Person.class类文件,并加载到内存中。
加载类文件时,除了非静态成员变量(对象的特有属性)不会被加载,其它的都会被加载。
记住:加载,是将类文件中的一行行内容存放到了内存当中,并不会执行任何语句。---->加载时期,即使有输出语句也不会执行。
作者:
杨玲
时间:
2013-1-29 23:28
呵呵,我说下我的理解,main方法是一个程序的入口,也就是说程序一执行就会先调用它,是吧,而其实程序是在编译的时候就把它所需要的数据全部加载到了class文件中的,而程序最后都是一条指令一条指令的执行,而main函数又要最先执行,所以我认为确实是先加载的main所在的类.也就是它所在的class文件.而new的对象其实是在编译的时候就加载到了这个类文件中的,所以我认为可以把它们理解成是一起加载到内存中的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2