java 对象包含_在Java中,对象变量是否包含对象的地址?

对象变量与对象的实例不同.区分变量,值和对象非常重要.

例如:

String x = "hello";

变量是x.它就像一张纸,上面写着一个值.

变量的值是一个引用 – VM可用于获取字符串对象本身的一些数据.它不一定是一个地址 – 它只是“获取对象数据的一种方式”. (有关这方面的更多信息,请阅读Eric Lippert的博客文章“References are not addresses” – 这是关于C#而不是Java,但它的原理是相同的.)

对象本身是一个单独的实体.

要使用一个真实世界的例子,想象一下,我有一张纸,上面写着我的家庭住址.这里显然有三件事:

>那张纸(就像一个变量).这张纸本身不是我的家庭住址,也不是房子.它只是可以存储价值的东西.

>我的家庭住址不是一张纸,也不是房子.这只是让某人到我家的价值.

>我的房子既不是一张纸,也不是一个地址.这是一个对象.

当您考虑参数传递和变量赋值之类的事情时,这变得很重要.例如:

House x = new House("Jon");

House y = x;

这里我们有两个变量,x和y,就像两张纸一样.我们建造一所房子,并在x上写下它的指示.然后我们将写在x上的值复制到y中.请注意,它们仍然是完全独立的纸张 – 但它们目前具有相同的值.只有一个物体 – 我们只建造了一个房子 – 但现在两张纸上有相同的方向.

如果一个人按照纸张上的指示x并将前门涂成红色,那么第二个人按照纸张上的指示y,他们会找到一个带有红色前门的房子.

另一方面,如果一个人在纸张x上潦草地写下方向,那么这根本不会影响纸张上的指示.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值