Java对象与Java对象引用的区别

如果读者们是在有c++的基础上学习java的话,在接触java关于对象的创建这方面的知识时,就会产生新的体验。在Java中,创建一个实例对象只能过通过new来进行,下面就以一个例子切入讲解。

Object a = new Object();

在上面仅有一行的代码中,包含了四个操作:
1.Object a在栈中创建了一个引用变量,用于指向Object对象,在此时a的值为NULL。
2.new Object在堆中申请内存创建了一个Object对象。
3.()代表着在创建完Object对象后,马上使用默认构造函数构造它。
4. = 将a与Object联系起来,使得a指向新创建的Object对象。

通俗地讲,我们可以将a比作是遥控器,而创建的Object是受遥控器控制的电视机,故a即为一个对象引用,new Object()才是真正的对象。

另外,在c++中,我们可以直接使用

Object a();

来创建对象,而在Java中这是不允许的。在c++中,当你定义了一个变量后,例如Object a;它会直接在栈中申请到对应的内存空间出来,而在java中,必须要使用new才能会在堆中申请到对应的内存空间,所以此时的a在java中仅仅是栈中的一个值为NULL的引用变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值