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

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

 

           在内存中区别类和对象:

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

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

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

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

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

 

          对于成员变量和方法:

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

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

 

      我们来看一个小例子:

                 

 

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值