黑马程序员技术交流社区

标题: 方法区里存储什么呢? [打印本页]

作者: Cola    时间: 2013-11-18 12:16
标题: 方法区里存储什么呢?
本帖最后由 Cola 于 2013-11-19 07:21 编辑

内存的疑问。new出来的都存储在堆内存中,main方法、非静态的局部变量存储在栈内存中,static修饰的方法与变量存储在方法区中,好像构造函数也存储在方法区中,请问还有哪些是存储在方法区的呢?菜鸟刚学java,问题粗浅,见谅。

作者: 荣晓鹤    时间: 2013-11-18 12:31
main本身就放在方法区中
作者: mayor125    时间: 2013-11-18 12:41
http://bbs.itheima.com/forum.php?mod=viewthread&tid=53763
作者: 侠客梦的懒猫    时间: 2013-11-18 22:26
方法区:
1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。

来一个例子如下:
public class Test1 {  //把Test1 的信息都放入方法区

       
        public static void main(String[] args) { //main 方法本身放入方法区。
               
        //新建对象
       Dog dog=new Dog("小黄",2);//Dog这个对象对应有class,它被放在堆中,但dog是新建的一个实例,所以放到栈区。

       printf()//此处也是调用方法,所以放到方法区

        }

这里有一个讲得比较清楚 http://imiduo.iteye.com/blog/616310




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2