现在的位置: 首页 > 综合 > 正文

java基础–java内存分析(二)(类和对象与内存分析)

2013年12月09日 ⁄ 综合 ⁄ 共 666字 ⁄ 字号 评论关闭

java中除了基础类型外的变量类型,全部都是引用类型,与C和C++的指针类似。

 

           在内存中区别类和对象:

              类似静态的概念,首先放在在代码区,声明的局部变量放在堆栈中。

              对象动态概念,放入堆内存。

          为什么new出来的东西放到堆内存?

              而对象是new出来的东西,是在代码执行的时候才存在的。堆内存是动态分配内存的,只有运行的过程中才会将new出来的对象放入堆内存中的,只有运行的过程中才会new一个对象放入到堆内存,没有办法开始就分配,必须在运行期分配。 而放在堆栈中的局部变量,不许要运行就放在堆栈中,使用局部变量完毕等待java的垃圾回收机制回收,不会立即消失。

            堆内存像是你自己在家里做饭,做什么样子的饭可以自由搭配,自由度较大。而栈内存,相当于你去饭店吃饭,点菜(申请),吃饭付钱(使用),服务员(垃圾机制)收拾盘子,就是自由度较小。关于更多的堆内存:http://baike.baidu.com/view/1962829.htm

 

          对于成员变量和方法:

                       同一个类的每个对象有不同的成员变量存储空间。

                    而同一个类的每一个方法共享该类的方法。

 

      我们来看一个小例子:

                 

 

               我想如果换做你是内存分配的管理员,你也会这样分配内存的,符合生活规律~~~

抱歉!评论已关闭.