内存使用

局部变量占用栈内存,对象(类)是NEW出来的,位于堆内存,类成员变量也位于堆内存

栈内存中局部引用变量(指针变量)将指向堆内存的对象,普通局部变量只在栈内存

方法执行结束后,该方法栈内存的局部变量将全部消失,而堆内存的对象将被垃圾收集器收拾掉(test.java)(static变量和常量存放在数据区,属于整个类,可以用于计数,可以用类名直接访问静态变量和方法)
Test test = new Test();
int date = 9; //date在栈内存
BirthDate d1= new BirthDate(7,7,1970); //d1在栈内存
BirthDate d2= new BirthDate(1,1,2000); //指向了堆内存的对象
test.change1(date); //将基础变量date的值传给i,
test.change2(d1);//形参(局部变量)b与引用变量d1指向同一堆内存
test.change3(d2);

public void change1(int i){
i = 1234; //date不变
}
public void change2(BirthDate b) {
b = new BirthDate(22,2,2004); //d1不变
}
public void change3(BirthDate b) {
b.setDay(22); //d2的成员变量day改变了
}

定义成员变量可以初始化,否则编译器将赋予默认值;局部变量没有默认值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值