关于java内存分配问题

比如一个Persion类,声明一个Person对象,Persionp=newPerson();那么句柄p前面的Person是存放在哪来的?记得有一个指定的位置,感谢。... 比如一个Persion类,声明一个Person对象,Persion p = new Person(); 那么句柄p前面的Person是存放在哪来的?记得有一个指定的位置,感谢。 展开
 我来答
microroom
科技发烧友

2019-09-14 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1577万
展开全部
对于Person p = new Person();
1.
Person p中的Person用来指定引用类型的变量p的类型,变量p一般存放在栈中,如果是作为其它类的属性也可存放在堆中,如:
class C
{
Person p = new Person();
}
2.
new Person()会在堆中创建一个Person类的对象并调用Person类的默认构造器初始化这个对象,然后返回这个对象的引用(可以理解为指针或句柄)。
3.
=将new Person()返回的引用赋值给变量p,p指向了这个堆中的对象。
鞠婧祎老婆柠祎
2019-09-14 · TA获得超过726个赞
知道小有建树答主
回答量:2416
采纳率:67%
帮助的人:407万
展开全部
p是放在栈上的,Person对象是放到堆上的,栈上的引用p指向堆对象Person
追问
new Person()应该是存放在堆上的,Person应该不是,我就是想不起来了
追答
person本身的信息放在方法区
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花艳花自娱951
2019-09-14 · TA获得超过1877个赞
知道大有可为答主
回答量:3168
采纳率:0%
帮助的人:385万
展开全部
1、int a=23;
String str=String.valueOf(a);
int和string两个对象
2、String str =new String("23"); 一个对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
依蒂亚娜
2019-09-14
知道答主
回答量:17
采纳率:66%
帮助的人:4.2万
展开全部
p前面的Persion是用于定义p的类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式