数组中元素值放在哪,在线等
java文件中
int[] ary = {4,5,6};
int[] ary1 = ary;
ary1[1]=8;
System.out.println(ary[1]);//8
现问:1数组中元素值放在哪,是放在栈中吗,
2ary[1]为什么也会改呢,怎么会为8呢
[解决办法]
放在堆中, ary1、ary才是放在占中,ary1、ary指向堆中的同一个地址,也就是放{4,5,6}的地址;
[解决办法]
首先你自己定义死了一个数组int[] ary = {4,5,6};里面的值分别 4 、5 、6
如果你想再改数组里添加一个数组,你ary1[1]=8;当然不下标为1 的值“5”替换了改成为8,
如果你想把8插入里面,你可以自己在new 一个 长度大于3的数组, int] str=new String[4];
然后你吧自己的数组跟8往里面添加,就可以了,其次你说这些元素值放在哪里,当然是堆里面,因为数组时一个对象
[解决办法]
int[] ary = {4,5,6}; int[] ary1 = ary; ary1[1]=8; System.out.println(ary[1]);//8
[解决办法]
其实可以画个图来解决 ,假设ary的地址是6000,然后你写int ary1=ary,相当于把ary1的地址也赋成6000,然后你改变了其中的值,也就是说6000这个地址对应的内容发生了改变,那么你再读ary时,当然读的是6000这个地址对应的内容了啊
------
| |
| |
|------|
|ary |
------
[解决办法]