Rad*_*yak 4 java arrays memory-management
当我们创建一个classtype对象时,new运算符会在运行时分配内存.
说
myclass obj1 = new myclass();
Run Code Online (Sandbox Code Playgroud)
这里myclass()定义了一个构造函数myclass
但
int arr1[4] = new int[];
Run Code Online (Sandbox Code Playgroud)
new分配内存但是,int[]这里做了什么?
新的分配内存,但int []在这里做什么?
该int[]部分只是指定新分配的内存应该具有的类型.
但是,由于数组不能动态增长,所以写入没有意义new int[](即使你已int[4]在声明中指定),你必须像这样编写它
int arr1[] = new int[4];
Run Code Online (Sandbox Code Playgroud)
或者像这样
int arr1[] = {1, 2, 3, 4};
Run Code Online (Sandbox Code Playgroud)
JLS中的相关部分: