----------------------
android培训、
java培训、期待与您交流! ----------------------
---------------------
ASP.Net+Android+IOS开发、
.Net培训、期待与您交流! ----------------------
在论坛里也看到同学问过
String s="abc"和String s=new String("abc")在内存中的情况,
今天的视频刚好学到这里,整理几个要点:
1、局部变量:定义在方法中、参数里的变量,作用域是它所在的母括号{ }。
2、栈:凡是局部变量就存在栈里,数据一旦用完就自动释放。
3、堆:用来存实体(包括数组和对象),new出来的都在堆里占空间,每个数据有自己的地址,有默认初始化值(int默认0,double默认0.0,float默认0.0f,布尔型默认false)。
4、int[ ] arr = new int[4]; 堆中占用4格地址,首地址比如是0X0012,就把这个地址传给栈里的arr,所以arr能够指向这个数组。
5、如果执行arr=null; 表示arr不再指向任何地方,也就是堆中那4格没有引用数据,就会被虚拟机作为垃圾清除,清除时间不确定。