java面向对象的一点小tip

 
我一直只知道面向对象的语言,在new一个新对象的时候,新的对象是分配在堆空间的。
 
例如
class    c{

         int i;
         int j;
}

c c1 = new c();     // new一个C的对象
 
但是,局部变量c1应该是存放在栈内存中的,那么,new操作后内存是如何分配的呢?
详见下图,其中c1是放在stack中的,new的新对象中,包含i, j两个成员变量,放在heap中。
 
java面向对象的一点小tip_第1张图片
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
对于static的 静态变量,在内存中,是放在data seg段的,它只有一份拷贝,不会为每一个对象占用一份内存空间生成拷贝。
静态的方法里面,不能调用 非静态的变量或者非静态的方法哦。
因为非静态的变量或者非静态的方法必须依赖于对象的存在而存在,
在静态的方法里面,是不会去new这个类的对象的~~
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
再提一个小tip:
 
重载:overload, 在一个类中,名字相同,参数不同(个数或类型不同都可以),返回值可以相同,也可以不同的方法。
 与面向对象没有关系。
重写:override, 子类对父类的方法重写,名字相同,参数相同。
面向对象的内容。
 

你可能感兴趣的:(内存,职场,new,休闲)