码迷,mamicode.com
首页 > 编程语言 > 详细

Java便利贴3

时间:2014-11-25 17:49:08      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   sp   java   数据   div   

看下面的类:

class Cat (
    int id;
    String name;
    static int sid;   

    Cat (String name) 
    {
         this.name = name;
id = sid++; }
public static void main (String[] args) { Cat.sid = 100; Cat mimi = new Cat("mimi"); Cat pipi = new Cat("pipi"); } }

内存的分配情况如下:

1、main方法中第一行 Cat.sid = 100

     因为sid是静态变量,无论Cat类是否创建了对象,创建了几个对象,都只是在Data segment(数据区)分配一块内存,类型是int,名字叫sid,值为100.

2、第二行new了一个Cat对象,首先会在栈中分配一块内存,放局部变量mimi,然后在堆中构建一个Cat对象,里面有id和name属性。

     String其实是个类,“mimi”是字符串常量,会在Data segment中分配一块内存,所以name属性是"mimi"的引用。

3、第三行再构建一个Cat对象pipi,同理,只不过此时sid变成102。

最后的内存分配如下图:

bubuko.com,布布扣

 

Java便利贴3

标签:style   blog   http   ar   color   sp   java   数据   div   

原文地址:http://www.cnblogs.com/qql1986/p/4121192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!