相同点:都是静态初始化,我们在定义的时候,就给值了
不同点:
1,int[] arr =new int[]{12,12,3,5,1}; //是可以将声明和创建实体分开来进行的,即:
int[] arr;
arr = new int[]{12,12,3,5,1};
而:int[] arr = {12,12,3,5,3,5}; //这种静态初始化必须定义在一行,不能先声明,后创建
2,int[] arr = new int[]{12,12,3,5,1}; //是用new来创建实体,会在对内存中创建实体,只有当没有变量指向
//时,才会变成垃圾被处理,java会自动处理:垃圾处理机制
int[] arr = {12,12,3,5,3,5}; //是在为变量赋值,在栈内存中完成的,当所在的方法出栈时,就会被释放
//空间
扩展;//动态初始化,没有手动赋值,jvm会自动给默认初始化值,整形的都是0 , 即:
int[] arr = new int[5]; |