开发者社区> 问答> 正文

java小程序中数组赋值问题

public class example2
 {
 public static void main(String args[])
 {
 int a[]={1,2,3,4};
 int b[];
 System.out.println(a[3]);
 b=a;
 b[3]=100;
 System.out.println(a[3]);
 System.out.println(b[3]);
}
}

输出结果为4.100.100。想问一下为何a数组也变了。

展开
收起
蛮大人123 2016-02-21 14:31:33 2360 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    数组是引用类型变量,int a[] ={1,2,3,4};中值{1,2,3,4}是存放在堆内存中,而变量是在栈内存中,当b=a赋值是使b指向到堆内存中的值,所以在给b数组修改变量时是将堆内存中的值改变了,同时a数组也是指向同一个堆内存的地址上的值,所以a输出出来也是改变过得。

    2019-07-17 18:45:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载