java中声明数组不用new,为什么数组依然在堆里面?还有这样有什么坏处

我的声明形式:int[]z={1,2,3,4};System.out.println(z);打印的结果:[I@106d69c... 我的声明形式: int [] z={1,2,3,4};
System.out.println(z); 打印的结果:[I@106d69c
展开
 我来答
armslave88
2015-01-22 · TA获得超过416个赞
知道小有建树答主
回答量:535
采纳率:100%
帮助的人:460万
展开全部
你打印的是数组z的内存地址。
数组声明可以用new,比如 int[] array = new int[10]; 声明一个有10个元素的数组,这是默认式
要想打印数组的元素,这样写
for(int i=0;i<array.length;i++)
{
System.out.println(array[i]);
}
这是动态式
int a[] ;
a = new int[3] ;
a[0] = 0 ;
a[1] = 1 ;
a[2] = 2 ;

这是静态式
int a[] = {0,1,2} ;

没什么区别,看个人需要
追问
  1. 所谓的动态式是指,一开始只声明一个 int a[],然后具体用的时候在给a具体的指向吗?(如同你的 a=new int[3])

  2. 我希望确切知道静态式的数组元素是否也存在堆里面?

  3. 谢谢啦!

追答
数组属于引用变量,存放在堆里面。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式