黑马程序员技术交流社区
标题:
内存相关
[打印本页]
作者:
曹昌豪
时间:
2012-5-26 12:54
标题:
内存相关
Person p = new Person();
这句话在内存中都做了什么??
列出供大家参考:
1,将Person.class加载进内存;
2,在堆内存中开辟空间;
3,把Person中的属性默认初始化;
4,把Person中的属性显示初始化;
5,调用构造代码块(没有则不执行)
6,调用构造函数初始化;
7,在栈内存中声明Person类型变量P,
8,把堆内存中的地址赋给P;
这儿的默认初始化可以理解,显示初始化是啥东东??
作者:
杨永峰
时间:
2012-5-26 13:00
默认初始化是为属性开辟内存空间,并赋于默认的值,各种变量、对象的默认值各不相同,比如布尔型是false,int类型是0....
如果定义的时候赋值了,比如,int i = 8;将 i 指向 8 就是显示初始化。
作者:
丰亚彬
时间:
2012-5-26 13:36
默认初始化是虚拟机做的事情,和你没有关系
你在类中定义成员变量时,后面赋上的值就是显示初始化
class Person
{
String name = "张三";
int age = 20;
}
默认初始化的时候name的值是null,age是0
显示初始化时name就成了张三,age就成了20
希望这样能帮你理解
作者:
马超
时间:
2012-5-26 14:01
最常用数据类型有:(不多举例)
int
String
boolean
它们的默认初始化值分别是:0 null false
当你给他另外赋值了,那么默认初始化值就被复写掉了
比方说:
未命名1.GIF
(10.93 KB, 下载次数: 20)
下载附件
2012-5-26 14:01 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2