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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Cola 中级黑马   /  2013-11-18 12:16  /  2343 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Cola 于 2013-11-19 07:21 编辑

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

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 小问题中,见的都是真理!

查看全部评分

4 个回复

倒序浏览
main本身就放在方法区中
回复 使用道具 举报

点评

FFF
水货~  发表于 2013-11-19 00:22
回复 使用道具 举报
方法区:
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

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

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