标签:
栈内存
栈内存中储存基本类型的变量(int a =3;)和引用类型的变量(Car car).当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。
堆内存
堆内存中存放由new创建的对象和数组,如new Auto;new int [];引用变量是普通变量,定义时在栈中分配内存,引用变量在程序运行到作用域外释放。而数组&对象本身在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象在没有引用变量指向的时候才会变成垃圾,但是他们还占着内存,他们在一个不确定的时间被垃圾回收器释放掉。
除了8种基本类型(byte1个字节 int2个字节 short4个字节 long8个字节 float4个字节 double8个字节 char2字节 boolean )的变量以外,其他的数据类型都称为引用型数据类型,也就是Object.Object的操作全是通过对象的引用。其中引用有点像指针
标签:
原文地址:http://www.cnblogs.com/Kevin-Ma/p/5384930.html