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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

是这样的,我有点疑惑就是:
内存加载类是在方法区加载的,加载类后,随着类的加载而加载的先是静态代码块然后是静态变量和静态函数,
上面说的没错吧,有错的帮忙纠正。问题是,接下来非静态成员有没有加载到方法区,还是当对象建立后才加载在方法区,还是当对象建立后加载到堆内存呢!!??

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

13 个回复

倒序浏览
内存加载类的顺序是,首先加载到方法区的是静态代码块-——静态变量,静态函数——代码块——构造函数,当加载构造函数的时候,就创建了对象,这就用到了堆栈区了,创建的对象,放入堆中,对象的引用放入栈中。成员变量都在堆上,只有方法里面定义的基础变量,在方法里面定义的引用其他对象的引用放在栈上(这个时候被引用的对象和它的成员变量还是在堆上)也就是说,线程上下文的东西在栈上,其他统统在堆上。

评分

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

查看全部评分

回复 使用道具 举报
姿_`态 发表于 2014-12-16 10:42
内存加载类的顺序是,首先加载到方法区的是静态代码块-——静态变量,静态函数——代码块——构造函数,当 ...

这个还真没怎么细心了解过,学习了
回复 使用道具 举报
后悔药 发表于 2014-12-16 11:05
这个还真没怎么细心了解过,学习了

嗯嗯,共同学习,
回复 使用道具 举报
姿_`态 发表于 2014-12-16 10:42
内存加载类的顺序是,首先加载到方法区的是静态代码块-——静态变量,静态函数——代码块——构造函数,当 ...

学习了~~~高手准备上哪一期呢?
回复 使用道具 举报
as604049322 发表于 2014-12-16 11:24
学习了~~~高手准备上哪一期呢?

没有 ,我菜鸟一只,大三,学校不然走,也不知道那一期。你是哪一期呐。
回复 使用道具 举报
学习了  都是大神
回复 使用道具 举报
大神回答的好透彻啊,受教了
回复 使用道具 举报
姿_`态 发表于 2014-12-16 11:33
没有 ,我菜鸟一只,大三,学校不然走,也不知道那一期。你是哪一期呐。 ...

唉,,我是非计算机专业是刚毕业的半年的。在学计算机的人中是菜鸟中的菜鸟,视频才看到面向对象,,,想赶上55期,好困难。你还有足够的时间打好基础啊,,,
回复 使用道具 举报
as604049322 发表于 2014-12-16 12:11
唉,,我是非计算机专业是刚毕业的半年的。在学计算机的人中是菜鸟中的菜鸟,视频才看到面向对象,,,想 ...

基础是一定要打好的,我想去可是去不了,郁闷啊 ,大家一起加油
回复 使用道具 举报
姿_`态 发表于 2014-12-16 10:42
内存加载类的顺序是,首先加载到方法区的是静态代码块-——静态变量,静态函数——代码块——构造函数,当 ...

涨姿势……
回复 使用道具 举报
姿_`态 发表于 2014-12-16 10:42
内存加载类的顺序是,首先加载到方法区的是静态代码块-——静态变量,静态函数——代码块——构造函数,当 ...

谢谢,那在没建立对象前,方法区里有加载非静态成员变量和成员函数吗
回复 使用道具 举报
没有,这些都是属于某个对象的特有数据,若没有对象就存在,包含的是对象的属性。对象没有,属性无从说起
回复 使用道具 举报
abc784990536 发表于 2014-12-16 15:56
谢谢,那在没建立对象前,方法区里有加载非静态成员变量和成员函数吗

应该是没有的,方法区只加载静态东西。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马