我知道有两种方法可以构建一个数组:
int[] a = {1,2,3};
int[] b = new int[]{1,2,3};
Run Code Online (Sandbox Code Playgroud)
到现在一切都好.
但是当使用for循环来处理数组的数据时.出现了一些东西.
至于这种方式:
for(int data:a){}
Run Code Online (Sandbox Code Playgroud)
一切都很好,
但就下面的方式而言,出现了惊喜:
for(int data:{1,2,3}){}
Run Code Online (Sandbox Code Playgroud)
它无法通过编译.和错误信息是:
此行有多个标记
- 语法错误,插入"}"以完成ArrayInitializer
- 语法错误,插入";;"语句"完成ForStatement
- 类型不匹配:无法从int []转换为int
- 令牌":"上的语法错误,=预期
我想找出原因,而且我想知道当没有new关键字时数组是在堆栈还是堆内存中?并且我知道当使用新关键字时它存在堆内存.