java堆内存,栈内存

栈内存

栈内存中储存基本类型的变量(int a =3;)和引用类型的变量(Car  car).当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。

堆内存

堆内存中存放由new创建的对象和数组,如new Auto;new int [];引用变量是普通变量,定义时在栈中分配内存,引用变量在程序运行到作用域外释放。而数组&对象本身在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象在没有引用变量指向的时候才会变成垃圾,但是他们还占着内存,他们在一个不确定的时间被垃圾回收器释放掉。

除了8种基本类型(byte1个字节  int2个字节 short4个字节  long8个字节  float4个字节 double8个字节 char2字节 boolean  )的变量以外,其他的数据类型都称为引用型数据类型,也就是Object.Object的操作全是通过对象的引用。其中引用有点像指针

posted on 2016-04-12 22:52  狼性KG  阅读(134)  评论(0)    收藏  举报