关于java物理存储常量池问题?

int a = 5;
int b = a;
b = b + 10;
输出a

怎样从栈堆常量池上解释?

2个回答

和常量池没有关系
int是简单类型,不是引用
int a = 5;
是将5这个值拷贝到a(a在堆栈上)
每个等于号都是值拷贝

注意区别 int 和 Integer

我感觉我可能跑题了:
1.在定义a时关系为先在静态区中找出或添加5这个值,然后在堆中创建a对象。在栈中添加a对象的引用地址。
2.b=a时拷贝在堆中创建b对象,因为是基本数据类型b对象拷贝a对应的静态区,在栈中创建b引用。
3.重新修改b对应的静态堆。b对应的静态堆时b+10,此时a对应的静态堆还为5,现在使用的静态堆有2个分别为a,b
4.输出a静态堆的值为5,输出顺序为现在栈中找出a的引用地址,然后在堆中找出a对象,然后在静态区中找出5这个值

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!