当定义一个数组时:
int[] a;此时会在栈内存中开辟空间存放a
a=new int[3];此时会在堆内存中开辟长度为3的空间,使a指向第一个空间
如果a=null那么堆中的空间会被回收,此时使用a会出现NullPointerException 空指针异常
如果int[] b=a,并不会为b数组开辟空间,b会直接指向已经开辟的空间,此时如果想的是只赋值给b就会出现与实际认为不符的结果
当定义一个数组时:
int[] a;此时会在栈内存中开辟空间存放a
a=new int[3];此时会在堆内存中开辟长度为3的空间,使a指向第一个空间
如果a=null那么堆中的空间会被回收,此时使用a会出现NullPointerException 空指针异常
如果int[] b=a,并不会为b数组开辟空间,b会直接指向已经开辟的空间,此时如果想的是只赋值给b就会出现与实际认为不符的结果