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 展开
System.out.println(z); 打印的结果:[I@106d69c 展开
1个回答
展开全部
你打印的是数组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} ;
没什么区别,看个人需要
数组声明可以用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} ;
没什么区别,看个人需要
追问
所谓的动态式是指,一开始只声明一个 int a[],然后具体用的时候在给a具体的指向吗?(如同你的 a=new int[3])
我希望确切知道静态式的数组元素是否也存在堆里面?
谢谢啦!
追答
数组属于引用变量,存放在堆里面。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询